403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/bizproc/automation/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/bizproc/automation/dist/automation.bundle.js.map
{"version":3,"file":"automation.bundle.js","sources":["../src/template-scope.js","../src/templates-scheme.js","../src/context/base-context.js","../src/context/context.js","../src/view-mode.js","../src/trigger.js","../src/helper.js","../src/designer.js","../src/trigger-manager.js","../src/delay-interval.js","../src/help-hint.js","../src/workflow/types.js","../src/tracker/tracking-entry.js","../src/tracker/types.js","../src/tracker/robot-entry.js","../src/tracker/trigger-entry.js","../src/tracker/tracking-entry-builder.js","../src/tracker/tracker.js","../src/robot.js","../src/user-options.js","../src/views/execution-queue-popup.js","../src/template.js","../src/document/document.js","../src/condition/condition.js","../src/condition/condition-group.js","../src/selectors/condition-selector.js","../src/selectors/condition-group-selector.js","../src/selectors/enrich-fields-with-modifiers.js","../src/selectors/group/group.js","../src/selectors/group/group-id.js","../src/selectors/group/document-group.js","../src/selectors/group/file-group.js","../src/selectors/inline-selector.js","../src/selectors/inline-time-selector.js","../src/selectors/manager.js","../src/selectors/inline-selector-condition.js","../src/selectors/inline-selector-html.js","../src/selectors/save-state-checkbox.js","../src/selectors/menu-selector.js","../src/selectors/user-selector.js","../src/selectors/file-selector.js","../src/selectors/time-selector.js","../src/delay-interval-selector.js","../src/context/selector-context.js","../src/automation-globals.js","../src/statuses.js","../src/selectors/group/constant-group.js","../src/selectors/group/activity-result-group.js","../src/selectors/group/trigger-result-group.js","../src/selectors/group/variable-group.js","../src/selectors/group/manager.js","../src/tourguide/beginning-guide.js","../src/tourguide/automation-guide.js","../src/automation.js"],"sourcesContent":["import { Type } from 'main.core';\nimport { DocumentType, DocumentCategory, DocumentStatus } from './document/types';\n\nexport class TemplateScope\n{\n\t#documentType: DocumentType;\n\t#category: DocumentCategory | null;\n\t#status: DocumentStatus;\n\n\tconstructor(rawTemplateScope: {\n\t\tDocumentType: {\n\t\t\tType: string,\n\t\t\tName: string,\n\t\t},\n\t\tCategory: {\n\t\t\tId: string | null,\n\t\t\tName: string | null,\n\t\t},\n\t\tStatus: {\n\t\t\tId: string,\n\t\t\tName: string,\n\t\t\tColor: string,\n\t\t}\n\t})\n\t{\n\t\tthis.#documentType = rawTemplateScope.DocumentType;\n\t\tthis.#category = !Type.isNil(rawTemplateScope.Category.Id) ? rawTemplateScope.Category : null;\n\t\tthis.#status = rawTemplateScope.Status;\n\t}\n\n\tgetId()\n\t{\n\t\tif (this.hasCategory())\n\t\t{\n\t\t\treturn `${this.#documentType.Type}_${this.#category.Id}_${this.#status.Id}`;\n\t\t}\n\n\t\treturn `${this.#documentType.Type}_${this.#status.Id}`;\n\t}\n\n\tgetDocumentType(): DocumentType\n\t{\n\t\treturn this.#documentType;\n\t}\n\n\tgetDocumentCategory(): DocumentCategory\n\t{\n\t\treturn this.#category;\n\t}\n\n\tgetDocumentStatus(): DocumentStatus\n\t{\n\t\treturn this.#status;\n\t}\n\n\thasCategory(): boolean\n\t{\n\t\treturn !Type.isNull(this.#category);\n\t}\n}","import {Type} from 'main.core';\nimport {DocumentType, DocumentCategory, DocumentStatus} from './document/types';\nimport {TemplateScope} from './template-scope';\n\nexport default class TemplatesScheme\n{\n\t#scheme: Array<TemplateScope>;\n\n\tconstructor(scheme: Array<TemplateScope>)\n\t{\n\t\tthis.#scheme = [];\n\n\t\tif (Type.isArray(scheme))\n\t\t{\n\t\t\tscheme.forEach(rawScope => {\n\t\t\t\tconst scope = new TemplateScope(rawScope);\n\t\t\t\tthis.#scheme.push(scope);\n\t\t\t});\n\t\t}\n\t}\n\n\tgetDocumentTypes(): Array<DocumentType>\n\t{\n\t\tconst documentTypes = new Map();\n\n\t\tfor (const scope of this.#scheme)\n\t\t{\n\t\t\tdocumentTypes.set(scope.getDocumentType().Type, scope.getDocumentType());\n\t\t}\n\n\t\treturn Array.from(documentTypes.values());\n\t}\n\n\tgetTypeCategories(documentType: DocumentType): Array<DocumentCategory>\n\t{\n\t\tconst documentCategories = new Map();\n\n\t\tfor (const scope of this.#scheme)\n\t\t{\n\t\t\tif (scope.hasCategory() && scope.getDocumentType().Type === documentType.Type)\n\t\t\t{\n\t\t\t\tconst category = scope.getDocumentCategory();\n\t\t\t\tdocumentCategories.set(category.Id, category);\n\t\t\t}\n\t\t}\n\n\t\treturn Array.from(documentCategories.values());\n\t}\n\n\tgetTypeStatuses(documentType: DocumentType, documentCategory: DocumentCategory | null): Array<DocumentStatus>\n\t{\n\t\tconst takenStatuses = new Set();\n\t\tif (Type.isNil(documentCategory))\n\t\t{\n\t\t\tdocumentCategory = {Id: null};\n\t\t}\n\n\t\tconst predicate = scope => {\n\t\t\tconst shouldBeTaken = (\n\t\t\t\tscope.getDocumentType().Type === documentType.Type\n\t\t\t\t&& (scope.hasCategory() ? scope.getDocumentCategory().Id === documentCategory.Id : true)\n\t\t\t\t&& !takenStatuses.has(scope.getDocumentStatus().Id)\n\t\t\t);\n\n\t\t\tif (shouldBeTaken)\n\t\t\t{\n\t\t\t\ttakenStatuses.add(scope.getDocumentStatus().Id);\n\t\t\t}\n\n\t\t\treturn shouldBeTaken;\n\t\t};\n\n\t\treturn Array.from(this.#filterBy(predicate)).map(scope => scope.getDocumentStatus());\n\t}\n\n\t#filterBy(predicate: (TemplateScope) => boolean): Iterable<TemplateScope>\n\t{\n\t\tconst generator = function*(scheme)\n\t\t{\n\t\t\tfor (const scope of scheme)\n\t\t\t{\n\t\t\t\tif (predicate(scope))\n\t\t\t\t{\n\t\t\t\t\tyield scope;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\treturn generator(this.#scheme);\n\t}\n}","import { Type, clone } from \"main.core\";\nimport { EventEmitter, BaseEvent } from \"main.core.events\";\n\nexport class BaseContext extends EventEmitter\n{\n\t#values: Object<string, any>;\n\n\tconstructor(defaultValue: Object<string, any>)\n\t{\n\t\tsuper();\n\n\t\tthis.setEventNamespace('BX.Bizproc.Automation.Context');\n\t\tif (Type.isPlainObject(defaultValue))\n\t\t{\n\t\t\tthis.#values = defaultValue;\n\t\t}\n\t}\n\n\tclone(): this\n\t{\n\t\treturn new BaseContext(clone(this.#values));\n\t}\n\n\tgetValues(): object\n\t{\n\t\treturn this.#values;\n\t}\n\n\tset(name: string, value: any): this\n\t{\n\t\tconst isValueChanged = this.has(name);\n\t\tthis.#values[name] = value;\n\t\tthis.emit(isValueChanged ? 'valueChanged' : 'valueAdded', {name, value})\n\n\t\treturn this;\n\t}\n\n\tget(name: string): any\n\t{\n\t\treturn this.#values[name];\n\t}\n\n\thas(name: string): boolean\n\t{\n\t\treturn this.#values.hasOwnProperty(name);\n\t}\n\n\tsubsribeValueChanges(name: string, listener: (BaseEvent) => void): this\n\t{\n\t\tthis.subscribe('valueChanged', (event) => {\n\t\t\tif (event.data.name === name)\n\t\t\t{\n\t\t\t\tlistener(event);\n\t\t\t}\n\t\t});\n\n\t\treturn this;\n\t}\n}","import { Type, Runtime } from \"main.core\";\nimport { BaseContext } from \"./base-context\";\nimport {Document, UserOptions, Tracker, AutomationGlobals} from \"bizproc.automation\";\nexport class Context extends BaseContext\n{\n\tconstructor(props: {\n\t\tdocument: Document,\n\t\tsignedDocument: string,\n\t\tajaxUrl: string,\n\t\tavailableRobots?: Array<Object>,\n\t\tavailableTriggers?: Array<Object>,\n\t\tcanManage?: boolean,\n\t\tcanEdit?: boolean,\n\t\tuserOptions?: UserOptions,\n\t\ttracker?: Tracker,\n\n\t\tbizprocEditorUrl?: string,\n\t\tconstantsEditorUrl?: string,\n\t\tparametersEditorUrl?: string,\n\n\t\tmarketplaceRobotCategory?: string,\n\t})\n\t{\n\t\tsuper(props);\n\t}\n\n\tclone(): this\n\t{\n\t\t// TODO - clone Tracker object when the corresponding method appears\n\t\treturn (new Context(Runtime.clone(this.getValues())))\n\t\t\t.set('document', this.document.clone())\n\t\t\t.set('userOptions', this.userOptions?.clone())\n\t\t;\n\t}\n\n\tget document(): ?Document\n\t{\n\t\treturn this.get('document');\n\t}\n\n\tget signedDocument(): string\n\t{\n\t\treturn this.get('signedDocument') ?? '';\n\t}\n\n\tget ajaxUrl(): string\n\t{\n\t\treturn this.get('ajaxUrl') ?? '';\n\t}\n\n\tget availableRobots(): Array<Object>\n\t{\n\t\tconst availableRobots = this.get('availableRobots');\n\t\tif (Type.isArray(availableRobots))\n\t\t{\n\t\t\treturn availableRobots;\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tget availableTriggers(): Array<Object>\n\t{\n\t\tconst availableTriggers = this.get('availableTriggers');\n\t\tif (Type.isArray(availableTriggers))\n\t\t{\n\t\t\treturn availableTriggers;\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tget canManage(): boolean\n\t{\n\t\tconst canManage = this.get('canManage');\n\n\t\treturn Type.isBoolean(canManage) && canManage;\n\t}\n\n\tget canEdit(): boolean\n\t{\n\t\tconst canEdit = this.get('canEdit');\n\n\t\treturn Type.isBoolean(canEdit) && canEdit;\n\t}\n\n\tget userOptions(): ?UserOptions\n\t{\n\t\treturn this.get('userOptions');\n\t}\n\n\tget tracker(): ?Tracker\n\t{\n\t\treturn this.get('tracker');\n\t}\n\n\tset tracker(tracker: Tracker)\n\t{\n\t\tthis.set('tracker', tracker);\n\t}\n\n\tget bizprocEditorUrl(): ?string\n\t{\n\t\treturn this.get('bizprocEditorUrl');\n\t}\n\n\tget constantsEditorUrl(): ?string\n\t{\n\t\treturn this.get('constantsEditorUrl');\n\t}\n\n\tget parametersEditorUrl(): ?string\n\t{\n\t\treturn this.get('parametersEditorUrl');\n\t}\n\n\tgetAvailableTrigger(code: string): ?Object\n\t{\n\t\treturn this.availableTriggers.find(trigger => trigger['CODE'] === code);\n\t}\n\n\tget automationGlobals(): ?AutomationGlobals\n\t{\n\t\treturn this.get('automationGlobals');\n\t}\n}\n","export class ViewMode\n{\n\t#mode: number;\n\t#properties: Object;\n\n\tstatic #none = 0;\n\tstatic #view = 1;\n\tstatic #edit = 2;\n\tstatic #manage = 3;\n\n\tconstructor(mode: number)\n\t{\n\t\tthis.#mode = mode;\n\t\tthis.#properties = {};\n\t}\n\n\tstatic none(): ViewMode\n\t{\n\t\treturn new ViewMode(ViewMode.#none)\n\t}\n\n\tisNone(): boolean\n\t{\n\t\treturn this.#mode === ViewMode.#none;\n\t}\n\n\tstatic view(): ViewMode\n\t{\n\t\treturn new ViewMode(ViewMode.#view);\n\t}\n\n\tisView(): boolean\n\t{\n\t\treturn this.#mode === ViewMode.#view;\n\t}\n\n\tstatic edit(): ViewMode\n\t{\n\t\treturn new ViewMode(ViewMode.#edit);\n\t}\n\n\tisEdit(): boolean\n\t{\n\t\treturn this.#mode === ViewMode.#edit;\n\t}\n\n\tstatic manage(): ViewMode\n\t{\n\t\treturn new ViewMode(ViewMode.#manage);\n\t}\n\n\tisManage(): boolean\n\t{\n\t\treturn this.#mode === ViewMode.#manage;\n\t}\n\n\tsetProperty(name: string, value: any): ViewMode\n\t{\n\t\tthis.#properties[name] = value;\n\n\t\treturn this;\n\t}\n\n\tgetProperty(name: string, defaultValue: any = null): ?any\n\t{\n\t\tif (this.#properties.hasOwnProperty(name))\n\t\t{\n\t\t\treturn this.#properties[name];\n\t\t}\n\n\t\treturn defaultValue;\n\t}\n\n\tstatic fromRaw(mode: number): ViewMode\n\t{\n\t\tif (ViewMode.getAll().includes(mode))\n\t\t{\n\t\t\treturn new ViewMode(mode);\n\t\t}\n\n\t\treturn ViewMode.none();\n\t}\n\n\tintoRaw(): number\n\t{\n\t\treturn this.#mode;\n\t}\n\n\tstatic getAll(): Array<number>\n\t{\n\t\treturn [\n\t\t\tthis.#none,\n\t\t\tthis.#view,\n\t\t\tthis.#edit,\n\t\t\tthis.#manage,\n\t\t];\n\t}\n}\n","import {clone, Type, Dom, Loc, Event, Tag} from \"main.core\";\nimport { EventEmitter } from \"main.core.events\";\nimport { ViewMode } from \"./view-mode\";\nimport { getGlobalContext, ConditionGroup, TrackingStatus, HelpHint } from \"bizproc.automation\";\n\nexport class Trigger extends EventEmitter\n{\n\tdraft: boolean;\n\n\t#data: Object<string, any>;\n\t#deleted: boolean;\n\t#viewMode: ViewMode;\n\t#condition: ConditionGroup;\n\t#node: ?HTMLDivElement;\n\t#draggableItem: ?HTMLElement;\n\t#droppableItem: ?HTMLElement;\n\t#droppableColumn: ?HTMLElement;\n\t#stub: ?HTMLElement;\n\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Bizproc.Automation');\n\n\t\tthis.draft = false;\n\t\tthis.#data = {};\n\t\tthis.#deleted = false;\n\t\tthis.#viewMode = ViewMode.none();\n\t\tthis.#condition = new ConditionGroup();\n\t}\n\n\tget node(): HTMLDivElement\n\t{\n\t\treturn this.#node;\n\t}\n\n\tget deleted(): boolean\n\t{\n\t\treturn this.#deleted;\n\t}\n\n\tget documentStatus(): string\n\t{\n\t\treturn this.#data['DOCUMENT_STATUS'] ?? '';\n\t}\n\n\tinit(data: Object<string, any>, viewMode: ?ViewMode): void\n\t{\n\t\tthis.#data = clone(data);\n\n\t\tif (Type.isString(this.#data['ID']))\n\t\t{\n\t\t\tconst id = parseInt(this.#data['ID']);\n\t\t\tthis.#data['ID'] = Type.isNumber(id) ? id : 0;\n\t\t}\n\t\tif (!Type.isPlainObject(this.#data['APPLY_RULES']))\n\t\t{\n\t\t\tthis.#data['APPLY_RULES'] = {};\n\t\t}\n\n\t\tif (this.#data['APPLY_RULES'].Condition)\n\t\t{\n\t\t\tthis.#condition = new ConditionGroup(this.#data['APPLY_RULES'].Condition);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#condition = new ConditionGroup();\n\t\t}\n\n\t\tthis.#viewMode = Type.isNil(viewMode) ? ViewMode.edit() : viewMode;\n\t\tthis.#node = this.createNode();\n\t}\n\n\treInit(data: Object<string, any>, viewMode: ?ViewMode)\n\t{\n\t\tconst node = this.#node;\n\t\tthis.#node = this.createNode();\n\t\tif (node.parentNode)\n\t\t{\n\t\t\tnode.parentNode.replaceChild(this.#node, node);\n\t\t}\n\t}\n\n\tcanEdit()\n\t{\n\t\treturn getGlobalContext().canEdit;\n\t}\n\n\tgetId(): number\n\t{\n\t\treturn this.#data['ID'] || 0;\n\t}\n\n\tgetStatusId(): string\n\t{\n\t\treturn String(this.#data['DOCUMENT_STATUS'] || '');\n\t}\n\n\tgetStatus(): ?object\n\t{\n\t\treturn getGlobalContext().document.statusList.find(status => String(status.STATUS_ID) === this.getStatusId());\n\t}\n\n\tgetCode(): string\n\t{\n\t\treturn this.#data['CODE'] ?? '';\n\t}\n\n\tgetName(): string\n\t{\n\t\tlet triggerName = this.#data['NAME'];\n\t\tif (!triggerName)\n\t\t{\n\t\t\tconst code = this.getCode();\n\t\t\tconst trigger = getGlobalContext().availableTriggers.find((trigger) => code === trigger['CODE']);\n\t\t\ttriggerName = trigger?.NAME ?? code;\n\t\t}\n\n\t\treturn triggerName;\n\t}\n\n\tsetName(name: string): this\n\t{\n\t\tif (Type.isString(name))\n\t\t{\n\t\t\tthis.#data['NAME'] = name;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetApplyRules()\n\t{\n\t\treturn this.#data['APPLY_RULES'];\n\t}\n\n\tsetApplyRules(rules: Object): this\n\t{\n\t\tthis.#data['APPLY_RULES'] = rules;\n\n\t\treturn this;\n\t}\n\n\tgetLogStatus()\n\t{\n\t\tconst log = getGlobalContext().tracker.getTriggerLog(this.getId());\n\t\treturn log ? log.status : null;\n\t}\n\n\tgetCondition(): ConditionGroup\n\t{\n\t\treturn this.#condition;\n\t}\n\n\tsetCondition(condition: ConditionGroup): this\n\t{\n\t\tthis.#condition = condition;\n\t\treturn this;\n\t}\n\n\tisBackwardsAllowed(): boolean\n\t{\n\t\treturn this.#data['APPLY_RULES']['ALLOW_BACKWARDS'] === 'Y';\n\t}\n\n\tsetAllowBackwards(flag: boolean): this\n\t{\n\t\tthis.#data['APPLY_RULES']['ALLOW_BACKWARDS'] = flag ? 'Y' : 'N';\n\n\t\treturn this;\n\t}\n\n\tgetExecuteBy(): string\n\t{\n\t\treturn this.#data['APPLY_RULES']['ExecuteBy'] || '';\n\t}\n\n\tsetExecuteBy(userId: number): this\n\t{\n\t\tthis.#data['APPLY_RULES']['ExecuteBy'] = userId;\n\n\t\treturn this;\n\t}\n\n\tenableManageMode(isActive: boolean): void\n\t{\n\t\tthis.#viewMode = ViewMode.manage().setProperty('isActive', isActive);\n\n\t\t// const checkboxNode = Tag.render`<div class=\"bizproc-automation-trigger-checkbox\"></div>`\n\t\tconst checkboxNode = Tag.render`<div class=\"ui-ctl ui-ctl-inline bizproc-automation-trigger-checkbox\">\n\t\t\t<input class=\"ui-ctl-checkbox\" type=\"checkbox\" name=\"name\">\n\t\t</div>`;\n\t\tconst deleteButton = this.#node.querySelector('[data-role=\"btn-delete-trigger\"]');\n\t\tDom.hide(deleteButton);\n\n\t\tif (isActive && deleteButton)\n\t\t{\n\t\t\tDom.append(checkboxNode, this.#node);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.#node, '--locked-node');\n\t\t}\n\t}\n\n\tdisableManageMode()\n\t{\n\t\tthis.#viewMode = ViewMode.edit();\n\n\t\tconst checkboxNode = this.#node.querySelector('.bizproc-automation-trigger-checkbox');\n\t\tconst deleteButton = this.#node.querySelector('[data-role=\"btn-delete-trigger\"]');\n\n\t\tthis.#node.onclick = undefined;\n\n\t\tthis.#viewMode = ViewMode.edit();\n\t\tthis.unselectNode();\n\n\t\tDom.removeClass(this.#node, '--locked-node');\n\t\tDom.remove(checkboxNode);\n\t\tDom.show(deleteButton);\n\t}\n\n\tselectNode()\n\t{\n\t\tif (this.#node)\n\t\t{\n\t\t\tDom.addClass(this.#node, '--selected');\n\n\t\t\tconst checkboxNode = this.#node.querySelector('input');\n\t\t\tif (checkboxNode)\n\t\t\t{\n\t\t\t\tcheckboxNode.checked = true;\n\t\t\t}\n\n\t\t\tthis.emit('Trigger:selected');\n\t\t}\n\t}\n\n\tunselectNode()\n\t{\n\t\tif (this.#node)\n\t\t{\n\t\t\tDom.removeClass(this.#node, '--selected');\n\n\t\t\tconst checkboxNode = this.#node.querySelector('input');\n\t\t\tif (checkboxNode)\n\t\t\t{\n\t\t\t\tcheckboxNode.checked = false;\n\t\t\t}\n\n\t\t\tthis.emit('Trigger:unselected');\n\t\t}\n\t}\n\n\tisSelected(): boolean\n\t{\n\t\treturn this.#viewMode.isManage() && Dom.hasClass(this.node, '--selected');\n\t}\n\n\tcreateNode()\n\t{\n\t\tlet wrapperClass = 'bizproc-automation-trigger-item-wrapper';\n\n\t\tif (this.#viewMode.isEdit() && this.canEdit())\n\t\t{\n\t\t\twrapperClass += ' bizproc-automation-trigger-item-wrapper-draggable';\n\t\t}\n\n\t\tlet settingsBtn = null;\n\t\tlet copyBtn = null;\n\t\tif (this.#viewMode.isEdit())\n\t\t{\n\t\t\tsettingsBtn = Dom.create(\"div\", {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: \"bizproc-automation-trigger-item-wrapper-edit\"\n\t\t\t\t},\n\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_EDIT')\n\t\t\t});\n\n\t\t\tcopyBtn = Dom.create('div', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: 'bizproc-automation-trigger-btn-copy'\n\t\t\t\t},\n\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_COPY') || 'copy'\n\t\t\t});\n\n\t\t\tEvent.bind(copyBtn, 'click', this.onCopyButtonClick.bind(this, copyBtn));\n\t\t}\n\n\t\tif (this.getLogStatus() === TrackingStatus.COMPLETED)\n\t\t{\n\t\t\twrapperClass += ' bizproc-automation-trigger-item-wrapper-complete';\n\t\t}\n\t\telse if (getGlobalContext().document.getPreviousStatusIdList().includes(this.getStatusId()))\n\t\t{\n\t\t\twrapperClass += ' bizproc-automation-trigger-item-wrapper-complete-light';\n\t\t}\n\n\t\tconst triggerName = this.getName();\n\n\t\tlet containerClass = 'bizproc-automation-trigger-item';\n\n\t\tif (this.getLogStatus() === TrackingStatus.COMPLETED)\n\t\t{\n\t\t\tcontainerClass += ' --complete';\n\t\t}\n\t\telse if (this.draft)\n\t\t{\n\t\t\tcontainerClass += ' --draft';\n\t\t}\n\n\t\tconst div = Dom.create('DIV', {\n\t\t\tattrs: {\n\t\t\t\t'data-role': 'trigger-container',\n\t\t\t\t'className': containerClass,\n\t\t\t\t'data-type': 'item-trigger'\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclassName: wrapperClass\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\tclassName: \"bizproc-automation-trigger-item-wrapper-text\",\n\t\t\t\t\t\t\t\ttitle: triggerName,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttext: triggerName\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t}),\n\t\t\t\tcopyBtn,\n\t\t\t\tsettingsBtn,\n\t\t\t]\n\t\t});\n\n\t\tif (!this.#viewMode.isEdit())\n\t\t{\n\t\t\treturn div;\n\t\t}\n\n\t\tif (this.canEdit())\n\t\t{\n\t\t\tthis.registerItem(div);\n\t\t}\n\n\t\tconst deleteBtn = Dom.create('SPAN', {\n\t\t\tattrs: {\n\t\t\t\t'data-role': 'btn-delete-trigger',\n\t\t\t\t'className': 'bizproc-automation-trigger-btn-delete',\n\t\t\t}\n\t\t});\n\n\t\tEvent.bind(deleteBtn, 'click', this.onDeleteButtonClick.bind(this, deleteBtn));\n\n\t\tdiv.appendChild(deleteBtn);\n\n\t\tif (this.#viewMode.isEdit())\n\t\t{\n\t\t\tEvent.bind(div, 'click', this.onSettingsButtonClick.bind(this, div));\n\t\t}\n\n\t\tEvent.bind(div, 'click', () => {\n\t\t\tif (this.#viewMode.isManage() && this.#viewMode.getProperty('isActive', false))\n\t\t\t{\n\t\t\t\tif (!this.isSelected())\n\t\t\t\t{\n\t\t\t\t\tthis.selectNode();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.unselectNode();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn div;\n\t}\n\n\tonSettingsButtonClick(button)\n\t{\n\t\tif (!this.canEdit())\n\t\t{\n\t\t\tHelpHint.showNoPermissionsHint(button);\n\t\t}\n\t\telse if (!this.#viewMode.isManage())\n\t\t{\n\t\t\tthis.emit('Trigger:onSettingsOpen', {trigger: this});\n\t\t}\n\t}\n\n\tonCopyButtonClick(button: HTMLElement, event)\n\t{\n\t\tevent.stopPropagation();\n\n\t\tif (!this.canEdit())\n\t\t{\n\t\t\tHelpHint.showNoPermissionsHint(button);\n\t\t}\n\t\telse if (!this.#viewMode.isManage())\n\t\t{\n\t\t\tconst trigger = new Trigger();\n\t\t\tconst initData = this.serialize();\n\t\t\tdelete initData['ID'];\n\n\t\t\tconst clearRules = this.getSettingProperties()\n\t\t\t\t.filter((property) => property.Copyable === false)\n\t\t\t\t.map((property) => property.Id)\n\t\t\t;\n\n\t\t\tclearRules.forEach(key => delete initData['APPLY_RULES'][key]);\n\n\t\t\ttrigger.init(initData, this.#viewMode);\n\t\t\tthis.emit('Trigger:copied', {trigger});\n\t\t}\n\t}\n\tonSearch(event)\n\t{\n\t\tif (!this.#node)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst query = event.getData().queryString;\n\t\tconst match = !query || this.getName().toLowerCase().indexOf(query) >= 0;\n\n\t\tDom[match ? 'removeClass' : 'addClass'](this.#node, '--search-mismatch');\n\t}\n\n\tregisterItem(object)\n\t{\n\t\tif (Type.isNil(object[\"__bxddid\"]))\n\t\t{\n\t\t\tobject.onbxdragstart = BX.proxy(this.dragStart, this);\n\t\t\tobject.onbxdrag = BX.proxy(this.dragMove, this);\n\t\t\tobject.onbxdragstop = BX.proxy(this.dragStop, this);\n\t\t\tobject.onbxdraghover = BX.proxy(this.dragOver, this);\n\t\t\tjsDD.registerObject(object);\n\t\t\tjsDD.registerDest(object, 1);\n\t\t}\n\t}\n\n\tunregisterItem(object)\n\t{\n\t\tobject.onbxdragstart = undefined;\n\t\tobject.onbxdrag = undefined;\n\t\tobject.onbxdragstop = undefined;\n\t\tobject.onbxdraghover = undefined;\n\t\tjsDD.unregisterObject(object);\n\t\tjsDD.unregisterDest(object);\n\t}\n\n\tdragStart()\n\t{\n\t\tthis.#draggableItem = BX.proxy_context;\n\n\t\tif (!this.#draggableItem)\n\t\t{\n\t\t\tjsDD.stopCurrentDrag();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.#stub)\n\t\t{\n\t\t\tconst itemWidth = this.#draggableItem.offsetWidth;\n\t\t\tthis.#stub = this.#draggableItem.cloneNode(true);\n\t\t\tthis.#stub.style.position = \"absolute\";\n\t\t\tthis.#stub.classList.add(\"bizproc-automation-trigger-item-drag\");\n\t\t\tthis.#stub.style.width = itemWidth + \"px\";\n\t\t\tdocument.body.appendChild(this.#stub);\n\t\t}\n\t}\n\n\tdragMove(x, y)\n\t{\n\t\tthis.#stub.style.left = x + \"px\";\n\t\tthis.#stub.style.top = y + \"px\";\n\t}\n\n\tdragOver(destination, x, y)\n\t{\n\t\tif (this.#droppableItem)\n\t\t{\n\t\t\tthis.#droppableItem.classList.remove(\"bizproc-automation-trigger-item-pre\");\n\t\t}\n\n\t\tif (this.#droppableColumn)\n\t\t{\n\t\t\tthis.#droppableColumn.classList.remove(\"bizproc-automation-trigger-list-pre\");\n\t\t}\n\n\t\tconst type = destination.getAttribute(\"data-type\");\n\n\t\tif (type === \"item-trigger\")\n\t\t{\n\t\t\tthis.#droppableItem = destination;\n\t\t\tthis.#droppableColumn = null;\n\t\t}\n\n\t\tif (type === \"column-trigger\")\n\t\t{\n\t\t\tthis.#droppableColumn = destination.querySelector('[data-role=\"trigger-list\"]');\n\t\t\tthis.#droppableItem = null;\n\t\t}\n\n\t\tif (this.#droppableItem)\n\t\t{\n\t\t\tthis.#droppableItem.classList.add(\"bizproc-automation-trigger-item-pre\");\n\t\t}\n\n\t\tif (this.#droppableColumn)\n\t\t{\n\t\t\tthis.#droppableColumn.classList.add(\"bizproc-automation-trigger-list-pre\");\n\t\t}\n\t}\n\n\tdragStop(x, y, event)\n\t{\n\t\tevent = event || window.event;\n\t\tlet trigger = null;\n\t\tconst isCopy = event && (event.ctrlKey || event.metaKey);\n\t\tconst copyTrigger = (parent, statusId) => {\n\t\t\tconst trigger = new Trigger();\n\t\t\tconst initData = parent.serialize();\n\t\t\tdelete initData['ID'];\n\n\t\t\tconst clearRules = this.getSettingProperties()\n\t\t\t\t.filter((property) => property.Copyable === false)\n\t\t\t\t.map((property) => property.Id)\n\t\t\t;\n\n\t\t\tclearRules.forEach(key => delete initData['APPLY_RULES'][key]);\n\n\t\t\tinitData['DOCUMENT_STATUS'] = statusId;\n\t\t\ttrigger.init(initData, parent.#viewMode);\n\n\t\t\treturn trigger;\n\t\t};\n\n\t\tif (this.#draggableItem)\n\t\t{\n\t\t\tif (this.#droppableItem)\n\t\t\t{\n\t\t\t\tthis.#droppableItem.classList.remove(\"bizproc-automation-trigger-item-pre\");\n\t\t\t\tconst thisColumn = this.#droppableItem.parentNode;\n\t\t\t\tif (!isCopy)\n\t\t\t\t{\n\t\t\t\t\tthisColumn.insertBefore(this.#draggableItem, this.#droppableItem);\n\t\t\t\t\tthis.moveTo(thisColumn.getAttribute('data-status-id'));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttrigger = copyTrigger(this, thisColumn.getAttribute('data-status-id'));\n\t\t\t\t\tthisColumn.insertBefore(trigger.#node, this.#droppableItem);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (this.#droppableColumn)\n\t\t\t{\n\t\t\t\tthis.#droppableColumn.classList.remove(\"bizproc-automation-trigger-list-pre\");\n\t\t\t\tif (!isCopy)\n\t\t\t\t{\n\t\t\t\t\tthis.#droppableColumn.appendChild(this.#draggableItem);\n\t\t\t\t\tthis.moveTo(this.#droppableColumn.getAttribute('data-status-id'));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttrigger = copyTrigger(this, this.#droppableColumn.getAttribute('data-status-id'));\n\t\t\t\t\tthis.#droppableColumn.appendChild(trigger.#node);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (trigger)\n\t\t\t{\n\t\t\t\tthis.emit('Trigger:copied', {\n\t\t\t\t\ttrigger,\n\t\t\t\t\tskipInsert: true,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.#stub.parentNode.removeChild(this.#stub);\n\t\tthis.#stub = null;\n\t\tthis.#draggableItem = null;\n\t\tthis.#droppableItem = null;\n\t}\n\n\tonDeleteButtonClick(button: HTMLElement, event)\n\t{\n\t\tevent.stopPropagation();\n\n\t\tif (!this.canEdit())\n\t\t{\n\t\t\tHelpHint.showNoPermissionsHint(button);\n\t\t}\n\t\telse if (!this.#viewMode.isManage())\n\t\t{\n\t\t\tDom.remove(button.parentNode);\n\t\t\tthis.emit('Trigger:deleted', {trigger: this});\n\t\t}\n\t}\n\n\tupdateData(data: Object<string, any>): void\n\t{\n\t\tif (Type.isPlainObject(data))\n\t\t{\n\t\t\tthis.#data = data;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow 'Invalid data';\n\t\t}\n\t}\n\n\tmarkDeleted(): this\n\t{\n\t\tthis.#deleted = true;\n\n\t\treturn this;\n\t}\n\n\tserialize(): Object<string, any>\n\t{\n\t\tconst data = clone(this.#data);\n\t\tif (this.#deleted)\n\t\t{\n\t\t\tdata['DELETED'] = 'Y';\n\t\t}\n\n\t\tif (!Type.isPlainObject(data.APPLY_RULES))\n\t\t{\n\t\t\tdata.APPLY_RULES = {};\n\t\t}\n\n\t\tif (!this.#condition.items.length)\n\t\t{\n\t\t\tdelete data.APPLY_RULES.Condition;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tdata.APPLY_RULES.Condition = this.#condition.serialize();\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tmoveTo(statusId)\n\t{\n\t\tthis.#data['DOCUMENT_STATUS'] = statusId;\n\t\tthis.emit('Trigger:modified', {trigger: this});\n\t}\n\n\tgetReturnProperties()\n\t{\n\t\tconst triggerData = getGlobalContext().availableTriggers.find(trigger => trigger['CODE'] === this.getCode());\n\n\t\treturn triggerData && Type.isArray(triggerData.RETURN) ? triggerData.RETURN : [];\n\t}\n\n\tgetSettingProperties(): Array\n\t{\n\t\tconst triggerData = getGlobalContext().availableTriggers.find(trigger => trigger['CODE'] === this.getCode());\n\n\t\tif (triggerData.SETTINGS && triggerData.SETTINGS.Properties)\n\t\t{\n\t\t\treturn triggerData.SETTINGS.Properties;\n\t\t}\n\n\t\treturn [];\n\t}\n}","import { Type } from \"main.core\";\n\nexport class Helper\n{\n\tstatic #idIncrement = 0;\n\n\tstatic generateUniqueId()\n\t{\n\t\t++Helper.#idIncrement;\n\t\treturn 'bizproc-automation-cmp-' + Helper.#idIncrement;\n\t}\n\n\tstatic toJsonString(data)\n\t{\n\t\treturn JSON.stringify(data, function (i, v)\n\t\t{\n\t\t\tif (typeof(v) == 'boolean')\n\t\t\t{\n\t\t\t\treturn v ? '1' : '0';\n\t\t\t}\n\t\t\treturn v;\n\t\t});\n\t}\n\n\tstatic getResponsibleUserExpression(fields: Array<Object>): ?string\n\t{\n\t\tif (Type.isArray(fields))\n\t\t{\n\t\t\tfor (const field of fields)\n\t\t\t{\n\t\t\t\tif (field['Id'] === 'ASSIGNED_BY_ID' || field['Id'] === 'RESPONSIBLE_ID')\n\t\t\t\t{\n\t\t\t\t\treturn '{{'+field['Name']+'}}';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t};\n}","export class Designer\n{\n\tstatic #instance;\n\n\trobotSettingsDialog;\n\tcomponent;\n\trobot;\n\ttriggerSettingsDialog;\n\n\tstatic getInstance()\n\t{\n\t\tif (!Designer.#instance)\n\t\t{\n\t\t\tDesigner.#instance = new Designer();\n\t\t}\n\n\t\treturn Designer.#instance;\n\t}\n\n\tsetRobotSettingsDialog(dialog)\n\t{\n\t\tthis.robotSettingsDialog = dialog;\n\t\tthis.robot = dialog ? dialog.robot : null;\n\t}\n\n\tgetRobotSettingsDialog()\n\t{\n\t\treturn this.robotSettingsDialog;\n\t}\n\n\tsetTriggerSettingsDialog(dialog)\n\t{\n\t\tthis.triggerSettingsDialog = dialog;\n\t}\n\n\tgetTriggerSettingsDialog()\n\t{\n\t\treturn this.triggerSettingsDialog;\n\t}\n}","import { Type, Event, Loc, Dom, Text, Uri, ajax, Tag, onCustomEvent } from 'main.core';\nimport { BaseEvent, EventEmitter } from 'main.core.events';\nimport { ViewMode } from './view-mode';\nimport { Trigger } from './trigger';\nimport { Helper } from './helper';\nimport { Designer } from './designer';\nimport { getGlobalContext, ConditionGroup, ConditionGroupSelector, UserOptions } from 'bizproc.automation';\nimport { Alert, AlertColor, AlertIcon } from 'ui.alerts';\nimport { Popup, MenuManager } from 'main.popup';\nimport { SaveButton, CancelButton } from 'ui.buttons';\n\nimport 'ui.hint';\n\nexport class TriggerManager extends EventEmitter\n{\n\t#triggersContainerNode: HTMLElement;\n\t#userOptions: ?UserOptions;\n\t#viewMode: ViewMode;\n\t#triggers: Array<Trigger>;\n\t#triggersData: Array<Object<string, any>>;\n\t#columnNodes: NodeList;\n\t#listNodes: NodeList;\n\t#modified: boolean;\n\t#triggerEventsListeners: Object<string, (event: BaseEvent) => void> = {};\n\n\tconstructor(triggersContainerNode: HTMLElement, params: { userOptions: ?UserOptions } = {})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Bizproc.Automation');\n\n\t\tthis.#triggersContainerNode = triggersContainerNode;\n\t\tthis.#userOptions = params.userOptions;\n\t}\n\n\tasync fetchTriggers()\n\t{\n\t\tconst self = this;\n\n\t\treturn new Promise((resolve, reject) => ajax({\n\t\t\tmethod: 'POST',\n\t\t\tdataType: 'json',\n\t\t\turl: getGlobalContext().ajaxUrl,\n\t\t\tdata: {\n\t\t\t\tajax_action: 'get_triggers',\n\t\t\t\tdocument_signed: getGlobalContext().signedDocument,\n\t\t\t},\n\t\t\tonsuccess(response)\n\t\t\t{\n\t\t\t\tif (response.SUCCESS)\n\t\t\t\t{\n\t\t\t\t\tself.reInit({ TRIGGERS: response.DATA.triggers }, self.#viewMode);\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\treject();\n\t\t\t\t}\n\t\t\t},\n\t\t\tonerror()\n\t\t\t{\n\t\t\t\treject();\n\t\t\t},\n\t\t}));\n\t}\n\n\tinit(data: ?Object<string, any>, viewMode: ViewMode)\n\t{\n\t\tif (!Type.isPlainObject(data))\n\t\t{\n\t\t\tdata = {};\n\t\t}\n\n\t\tthis.#viewMode = viewMode.isNone() ? ViewMode.edit() : viewMode;\n\t\tthis.#triggersData = Type.isArray(data.TRIGGERS) ? data.TRIGGERS : [];\n\t\tthis.#columnNodes = document.querySelectorAll('[data-type=\"column-trigger\"]');\n\t\tthis.#listNodes = this.#triggersContainerNode.querySelectorAll('[data-role=\"trigger-list\"]');\n\t\tthis.#modified = false;\n\t\tthis.initTriggers();\n\n\t\tthis.markModified(false);\n\n\t\t// register DD\n\t\tthis.#columnNodes.forEach((columnNode) => jsDD.registerDest(columnNode, 10));\n\n\t\ttop.BX.addCustomEvent(\n\t\t\ttop,\n\t\t\t'Rest:AppLayout:ApplicationInstall',\n\t\t\tthis.onRestAppInstall.bind(this),\n\t\t);\n\t}\n\n\treInit(data: ?Object<string, any>, viewMode: ?ViewMode)\n\t{\n\t\tif (!Type.isPlainObject(data))\n\t\t{\n\t\t\tdata = {};\n\t\t}\n\n\t\tthis.#viewMode = viewMode || ViewMode.none();\n\t\tthis.#listNodes.forEach((node) => Dom.clean(node));\n\n\t\tthis.#triggersData = Type.isArray(data.TRIGGERS) ? data.TRIGGERS : [];\n\n\t\tthis.initTriggers();\n\n\t\tthis.markModified(false);\n\t}\n\n\tinitTriggers()\n\t{\n\t\tthis.#triggers = [];\n\t\tthis.#triggersData.forEach((triggerData) => {\n\t\t\tconst trigger = new Trigger();\n\t\t\ttrigger.init(triggerData, this.#viewMode);\n\t\t\tthis.subscribeTriggerEvents(trigger);\n\t\t\tthis.insertTriggerNode(trigger.getStatusId(), trigger.node);\n\t\t\tthis.#triggers.push(trigger);\n\t\t});\n\t}\n\n\tsubscribeTriggerEvents(trigger: Trigger)\n\t{\n\t\ttrigger.subscribe('Trigger:copied', (event) => {\n\t\t\tconst trigger = event.data.trigger;\n\n\t\t\tthis.#triggers.push(trigger);\n\t\t\tif (!event.data.skipInsert)\n\t\t\t{\n\t\t\t\tthis.insertTriggerNode(trigger.getStatusId(), trigger.node);\n\t\t\t}\n\t\t\tthis.subscribeTriggerEvents(trigger);\n\t\t\tthis.markModified();\n\t\t});\n\t\ttrigger.subscribe('Trigger:modified', () => this.markModified());\n\t\ttrigger.subscribe('Trigger:onSettingsOpen', (event) => {\n\t\t\tthis.openTriggerSettingsDialog(event.data.trigger);\n\t\t});\n\t\ttrigger.subscribe('Trigger:deleted', (event) => this.deleteTrigger(event.data.trigger));\n\n\t\tObject\n\t\t\t.entries(this.#triggerEventsListeners)\n\t\t\t.forEach(([eventName, listener]) => trigger.subscribe(eventName, listener));\n\t}\n\n\tonTriggerEvent(eventName: string, listener: (event: BaseEvent, trigger: Trigger) => void)\n\t{\n\t\tthis.#triggerEventsListeners[eventName] = listener;\n\n\t\tthis.#triggers.forEach((trigger: Trigger) => {\n\t\t\ttrigger.subscribe(eventName, (event) => listener(event, trigger));\n\t\t});\n\t}\n\n\tgetSelectedTriggers(): Array<Trigger>\n\t{\n\t\treturn this.#triggers.filter((trigger) => trigger.isSelected());\n\t}\n\n\tonSearch(event)\n\t{\n\t\tthis.#triggers.forEach((trigger) => trigger.onSearch(event));\n\t}\n\n\tenableManageMode(status)\n\t{\n\t\tthis.#viewMode = ViewMode.manage();\n\n\t\tdocument.querySelectorAll('[data-role=\"trigger-list\"]').forEach((listNode) => {\n\t\t\tif (listNode.dataset.statusId === status)\n\t\t\t{\n\t\t\t\tDom.addClass(listNode, '--multiselect-mode');\n\t\t\t}\n\t\t});\n\t\tthis.#triggers.forEach((trigger) => {\n\t\t\ttrigger.enableManageMode(trigger.documentStatus === status);\n\t\t});\n\t}\n\n\tdisableManageMode()\n\t{\n\t\tthis.#viewMode = ViewMode.edit();\n\n\t\tdocument.querySelectorAll('[data-role=\"trigger-list\"]').forEach((listNode) => {\n\t\t\tDom.removeClass(listNode, '--multiselect-mode');\n\t\t});\n\n\t\tthis.#triggers.forEach((trigger) => trigger.disableManageMode());\n\t}\n\n\taddTrigger(triggerData: ?Object<string, any>, callback)\n\t{\n\t\tconst trigger = new Trigger();\n\t\ttrigger.draft = true;\n\t\ttrigger.init(triggerData, this.#viewMode);\n\t\tthis.subscribeTriggerEvents(trigger);\n\t\tif (callback)\n\t\t{\n\t\t\tcallback.call(this, trigger);\n\t\t}\n\t\tthis.emit('TriggerManager:trigger:add', { trigger });\n\t}\n\n\tdeleteTrigger(trigger: Trigger, callback)\n\t{\n\t\tif (trigger.getId() > 0)\n\t\t{\n\t\t\ttrigger.markDeleted();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tfor (let i = 0; i < this.#triggers.length; ++i)\n\t\t\t{\n\t\t\t\tif (this.#triggers[i] === trigger)\n\t\t\t\t{\n\t\t\t\t\tthis.#triggers.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (callback)\n\t\t{\n\t\t\tcallback(trigger);\n\t\t}\n\n\t\tthis.emit('TriggerManager:trigger:delete', { trigger });\n\n\t\tthis.markModified();\n\t}\n\n\tenableDragAndDrop()\n\t{\n\t\tthis.#triggers.forEach((trigger) => trigger.registerItem(trigger.node));\n\t\tthis.#triggersContainerNode\n\t\t\t.querySelectorAll('.bizproc-automation-trigger-item-wrapper')\n\t\t\t.forEach((node) => {\n\t\t\t\tDom.addClass(node, 'bizproc-automation-trigger-item-wrapper-draggable');\n\t\t\t})\n\t\t;\n\t}\n\n\tdisableDragAndDrop()\n\t{\n\t\tthis.#triggers.forEach((trigger) => trigger.unregisterItem(trigger.node));\n\t\tthis.#triggersContainerNode\n\t\t\t.querySelectorAll('.bizproc-automation-trigger-item-wrapper')\n\t\t\t.forEach((node) => {\n\t\t\t\tDom.removeClass(node, 'bizproc-automation-trigger-item-wrapper-draggable');\n\t\t\t})\n\t\t;\n\t}\n\n\tinsertTrigger(trigger)\n\t{\n\t\tthis.#triggers.push(trigger);\n\t\tthis.markModified(true);\n\t}\n\n\tinsertTriggerNode(documentStatus: string, triggerNode)\n\t{\n\t\tconst listNode = this.#triggersContainerNode.querySelector(`[data-role=\"trigger-list\"][data-status-id=\"${documentStatus}\"]`);\n\t\tif (listNode)\n\t\t{\n\t\t\tDom.append(triggerNode, listNode);\n\t\t}\n\t}\n\n\tserialize(): Array<Object<string, any>>\n\t{\n\t\treturn this.#triggers.map((trigger) => trigger.serialize());\n\t}\n\n\tcountAllTriggers(): number\n\t{\n\t\treturn this.#triggers.filter((trigger) => !trigger.deleted).length;\n\t}\n\n\tfindTriggerById(id: number): Trigger | undefined\n\t{\n\t\treturn this.#triggers.find((trigger) => trigger.getId() === id);\n\t}\n\n\tfindTriggersByDocumentStatus(statusId: string): Array<Trigger>\n\t{\n\t\treturn this.#triggers.filter((trigger) => trigger.getStatusId() === statusId);\n\t}\n\n\tgetTriggerName(code: string)\n\t{\n\t\treturn getGlobalContext().availableTriggers.find((trigger) => code === trigger.CODE)?.NAME ?? code;\n\t}\n\n\tgetAvailableTrigger(code): ?Object\n\t{\n\t\tconst availableTriggers = getGlobalContext().availableTriggers;\n\t\tfor (const availableTrigger of availableTriggers)\n\t\t{\n\t\t\tif (code === availableTrigger.CODE)\n\t\t\t{\n\t\t\t\treturn availableTrigger;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tcanEdit(): boolean\n\t{\n\t\treturn getGlobalContext().canEdit;\n\t}\n\n\tcanSetExecuteBy(): boolean\n\t{\n\t\treturn getGlobalContext().get('TRIGGER_CAN_SET_EXECUTE_BY') ?? false;\n\t}\n\n\tneedSave()\n\t{\n\t\treturn this.#modified;\n\t}\n\n\tmarkModified(modified: boolean)\n\t{\n\t\tthis.#modified = modified !== false;\n\t\tif (this.#modified)\n\t\t{\n\t\t\tthis.emit('TriggerManager:dataModified');\n\t\t}\n\t}\n\n\topenTriggerSettingsDialog(trigger, context)\n\t{\n\t\tif (Designer.getInstance().getTriggerSettingsDialog())\n\t\t{\n\t\t\tif (context && context.changeTrigger)\n\t\t\t{\n\t\t\t\tDesigner.getInstance().getTriggerSettingsDialog().popup.close();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst formName = 'bizproc_automation_trigger_dialog';\n\n\t\tconst title = this.getTriggerName(trigger.getCode());\n\t\tconst form = Tag.render`\n\t\t\t<form name=\"${formName}\" style=\"min-width: 540px;\">\n\t\t\t\t${this.renderConditionSettings(trigger)}\n\t\t\t\t<span class=\"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-autocomplete\">\n\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_TRIGGER_NAME')}:\n\t\t\t\t</span>\n\t\t\t\t<div class=\"bizproc-automation-popup-settings\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tclass=\"bizproc-automation-popup-input\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tname=\"name\"\n\t\t\t\t\t\tvalue=\"${Text.encode(trigger.getName() || title)}\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t`;\n\n\t\tconst triggerData = this.getAvailableTrigger(trigger.getCode());\n\n\t\tif (triggerData && triggerData.SETTINGS)\n\t\t{\n\t\t\tthis.#renderTriggerProperties(trigger, triggerData.SETTINGS.Properties, form);\n\t\t}\n\n\t\tonCustomEvent(\n\t\t\t`BX.Bizproc.Automation.TriggerManager:onOpenSettingsDialog-${trigger.getCode()}`,\n\t\t\t[trigger, form],\n\t\t);\n\n\t\tif (this.canSetExecuteBy())\n\t\t{\n\t\t\tthis.renderExecuteByControl(trigger, form);\n\t\t}\n\n\t\tthis.renderAllowBackwardsControl(trigger, form);\n\n\t\tDom.addClass(this.#triggersContainerNode, 'automation-base-blocked');\n\n\t\tDesigner.getInstance().setTriggerSettingsDialog({\n\t\t\ttriggerManager: this,\n\t\t\ttrigger,\n\t\t\tform,\n\t\t});\n\n\t\tconst popup = new Popup({\n\t\t\tid: Helper.generateUniqueId(),\n\t\t\tbindElement: null,\n\t\t\tcontent: form,\n\t\t\tcloseByEsc: true,\n\t\t\tbuttons: [\n\t\t\t\tnew SaveButton({\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tconst formData = ajax.prepareForm(form);\n\t\t\t\t\t\ttrigger.setName(formData.data.name);\n\n\t\t\t\t\t\tif (triggerData.SETTINGS)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.#setTriggerProperties(trigger, triggerData.SETTINGS.Properties, form);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonCustomEvent(\n\t\t\t\t\t\t\t`BX.Bizproc.Automation.TriggerManager:onSaveSettings-${trigger.getCode()}`,\n\t\t\t\t\t\t\t[trigger, formData],\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tthis.setConditionSettingsFromForm(formData.data, trigger);\n\t\t\t\t\t\ttrigger.setAllowBackwards(formData.data.allow_backwards === 'Y');\n\n\t\t\t\t\t\tif (this.canSetExecuteBy())\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttrigger.setExecuteBy(formData.data.execute_by);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// analytics\n\t\t\t\t\t\tajax.runAction(\n\t\t\t\t\t\t\t'bizproc.analytics.push',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tanalyticsLabel: `automation_trigger${trigger.draft ? '_draft' : ''}_save_${trigger.getCode().toLowerCase()}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tdelete trigger.draft;\n\n\t\t\t\t\t\ttrigger.reInit();\n\t\t\t\t\t\tthis.markModified();\n\t\t\t\t\t\tpopup.close();\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tnew CancelButton({\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tpopup.close();\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\twidth: 590,\n\t\t\tcontentPadding: 12,\n\t\t\tcloseIcon: true,\n\t\t\tevents: {\n\t\t\t\tonPopupClose: () => {\n\t\t\t\t\tDesigner.getInstance().setTriggerSettingsDialog(null);\n\t\t\t\t\tthis.destroySettingsDialogControls();\n\t\t\t\t\tpopup.destroy();\n\t\t\t\t\tDom.removeClass(this.#triggersContainerNode, 'automation-base-blocked');\n\t\t\t\t\tthis.emit('TriggerManager:onCloseTriggerSettingsDialog');\n\t\t\t\t},\n\t\t\t},\n\t\t\ttitleBar: title,\n\t\t\toverlay: false,\n\t\t\tdraggable: { restrict: false },\n\t\t});\n\n\t\tDesigner.getInstance().getTriggerSettingsDialog().popup = popup;\n\t\tpopup.show();\n\n\t\t// analytics\n\t\tajax.runAction(\n\t\t\t'bizproc.analytics.push',\n\t\t\t{\n\t\t\t\tanalyticsLabel: `automation_trigger${trigger.draft ? '_draft' : ''}_settings_${trigger.getCode().toLowerCase()}`,\n\t\t\t},\n\t\t);\n\t}\n\n\t#renderTriggerProperties(trigger: Trigger, properties: [], form: Element)\n\t{\n\t\tproperties.forEach((property) => {\n\t\t\tconst value = trigger.getApplyRules()[property.Id];\n\n\t\t\tif (property.Type === '@condition-group-selector')\n\t\t\t{\n\t\t\t\tthis.#renderConditionGroupSelector(property, value, form);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (property.Type === '@webhook-code')\n\t\t\t{\n\t\t\t\tthis.#renderWebhookCodeProperty(property, value, form);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (property.Type === '@field-selector')\n\t\t\t{\n\t\t\t\tthis.#renderFieldSelectorProperty(property, value, form);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst toRenderProperty = { AllowSelection: false, ...property };\n\n\t\t\tif (toRenderProperty.Type === '@robot-select')\n\t\t\t{\n\t\t\t\tthis.#prepareRobotSelectProperty(toRenderProperty);\n\t\t\t}\n\n\t\t\tDom.append(\n\t\t\t\tTag.render`\n\t\t\t\t\t<span \n\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-top bizproc-automation-popup-settings-title-autocomplete\"\n\t\t\t\t\t>${Text.encode(property.Name)}:</span>\n\t\t\t\t`,\n\t\t\t\tform,\n\t\t\t);\n\t\t\tDom.append(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"bizproc-automation-popup-settings\">\n\t\t\t\t\t\t${BX.Bizproc.FieldType.renderControl(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t...getGlobalContext().document.getRawType(),\n\t\t\t\t\t\t\tgetGlobalContext().document.getCategoryId(),\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\ttoRenderProperty,\n\t\t\t\t\t\tproperty.Id,\n\t\t\t\t\t\tvalue || '',\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t`,\n\t\t\t\tform,\n\t\t\t);\n\t\t});\n\t}\n\n\t#prepareRobotSelectProperty(property)\n\t{\n\t\tconst cmp = Designer.getInstance().component;\n\t\tproperty.Options = [];\n\t\tconst filter = property.Settings.Filter;\n\t\tconst check = (robot) => {\n\t\t\tfor (const field in filter)\n\t\t\t{\n\t\t\t\tif (robot.data[field] !== filter[field])\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t};\n\n\t\tcmp.templateManager.templates.forEach((template) => {\n\t\t\ttemplate.robots.forEach((robot) => {\n\t\t\t\tif (check(robot))\n\t\t\t\t{\n\t\t\t\t\tproperty.Options.push(\n\t\t\t\t\t\t{ value: robot.getId(), name: robot.getProperty(property.Settings.OptionNameProperty) },\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tdelete property.Settings;\n\t\tproperty.Type = 'select';\n\t}\n\n\t#setTriggerProperties(trigger: Trigger, properties: [], form: Element)\n\t{\n\t\tconst values = {};\n\n\t\tproperties.forEach((property) => {\n\t\t\tif (property.Type === '@condition-group-selector')\n\t\t\t{\n\t\t\t\tvalues[property.Id] = this.#setConditionGroupValue(property, form);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst formData = BX.ajax.prepareForm(form);\n\t\t\tvalues[property.Id] = formData.data[property.Id];\n\t\t});\n\n\t\ttrigger.setApplyRules(values);\n\t}\n\n\trenderConditionSettings(trigger: Trigger)\n\t{\n\t\tconst conditionGroup = trigger.getCondition().clone();\n\n\t\tthis.conditionSelector = new ConditionGroupSelector(\n\t\t\tconditionGroup,\n\t\t\t{\n\t\t\t\tfields: getGlobalContext().document.getFields(),\n\t\t\t\tshowValuesSelector: false,\n\t\t\t\tcaption: {\n\t\t\t\t\thead: Loc.getMessage('BIZPROC_JS_AUTOMATION_ROBOT_CONDITION_TITLE'),\n\t\t\t\t},\n\t\t\t\tisExpanded: (\n\t\t\t\t\tthis.#userOptions && this.#userOptions.get('defaults', 'isConditionGroupExpanded', 'N') === 'Y'\n\t\t\t\t),\n\t\t\t},\n\t\t);\n\n\t\tif (this.#userOptions)\n\t\t{\n\t\t\tthis.conditionSelector.subscribe('onToggleGroupViewClick', (event: BaseEvent) => {\n\t\t\t\tconst data = event.getData();\n\t\t\t\tthis.#userOptions.set('defaults', 'isConditionGroupExpanded', data.isExpanded ? 'Y' : 'N');\n\t\t\t});\n\t\t}\n\n\t\treturn this.conditionSelector.createNode();\n\t}\n\n\t#renderConditionGroupSelector(property, value, form)\n\t{\n\t\tconst selector = new ConditionGroupSelector(new ConditionGroup(value), {\n\t\t\tfields: property.Settings.Fields,\n\t\t\tfieldPrefix: property.Id,\n\t\t\tshowValuesSelector: false,\n\t\t\tcaption: {\n\t\t\t\thead: property.Name,\n\t\t\t},\n\t\t});\n\n\t\tDom.append(selector.createNode(), form);\n\t}\n\n\t#setConditionGroupValue(property, form)\n\t{\n\t\tconst formData = BX.ajax.prepareForm(form);\n\t\tconst conditionGroup = ConditionGroup.createFromForm(formData.data, property.Id);\n\n\t\treturn conditionGroup.serialize();\n\t}\n\n\t#renderWebhookCodeProperty(property, value, form)\n\t{\n\t\tif (!value)\n\t\t{\n\t\t\tvalue = Text.getRandom(5);\n\t\t}\n\n\t\tDom.append(\n\t\t\tTag.render`\n\t\t\t\t<span class=\"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-autocomplete\">\n\t\t\t\t\t${Text.encode(property.Name)}:\n\t\t\t\t</span>\n\t\t\t`,\n\t\t\tform,\n\t\t);\n\t\tDom.append(Tag.render`<input type=\"hidden\" value=\"${Text.encode(value)}\" name=\"code\"/>`, form);\n\n\t\tconst hookLinkTextarea = Tag.render`\n\t\t\t<textarea class=\"bizproc-automation-popup-textarea\" placeholder=\"...\" readonly=\"readonly\" name=\"webhook_handler\">\n\t\t\t</textarea>\n\t\t`;\n\t\tEvent.bind(hookLinkTextarea, 'click', () => {\n\t\t\tthis.select();\n\t\t});\n\n\t\tDom.append(Tag.render`<div class=\"bizproc-automation-popup-settings\">${hookLinkTextarea}</div>`, form);\n\n\t\tDom.append(\n\t\t\tTag.render`\n\t\t\t\t<span class=\"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-autocomplete\">\n\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_WEBHOOK_ID')}\n\t\t\t\t</span>\n\t\t\t`,\n\t\t\tform,\n\t\t);\n\n\t\tif (property.Settings.Handler)\n\t\t{\n\t\t\tlet url = window.location.protocol + '//' + window.location.host + property.Settings.Handler;\n\t\t\turl = Uri.addParam(url, { code: value });\n\t\t\turl = url.replace('{{DOCUMENT_TYPE}}', getGlobalContext().document.getRawType()[2]);\n\t\t\turl = url.replace('{{USER_ID}}', Loc.getMessage('USER_ID'));\n\n\t\t\tif (property.Settings.Password)\n\t\t\t{\n\t\t\t\turl = url.replace('{{PASSWORD}}', property.Settings.Password);\n\t\t\t}\n\n\t\t\thookLinkTextarea.value = url;\n\t\t}\n\n\t\tif (!property.Settings.Password && property.Settings.PasswordLoader)\n\t\t{\n\t\t\tconst myAlertText = (\n\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_WEBHOOK_PASSWORD_ALERT')\n\t\t\t\t\t.replace(\n\t\t\t\t\t\t'#A1#',\n\t\t\t\t\t\t'<a class=\"bizproc-automation-popup-settings-link '\n\t\t\t\t\t\t+ 'bizproc-automation-popup-settings-link-light\" data-role=\"token-gen\">',\n\t\t\t\t\t)\n\t\t\t\t\t.replace('#A2#', '</a>')\n\t\t\t);\n\n\t\t\tconst passwordAlert = new Alert({\n\t\t\t\tcolor: AlertColor.WARNING,\n\t\t\t\ticon: AlertIcon.WARNING,\n\t\t\t\ttext: myAlertText,\n\t\t\t});\n\n\t\t\tEvent.bind(\n\t\t\t\tpasswordAlert.getTextContainer().querySelector('[data-role=\"token-gen\"]'),\n\t\t\t\t'click',\n\t\t\t\t() => {\n\t\t\t\t\tconst loaderConfig = property.Settings.PasswordLoader;\n\n\t\t\t\t\tajax.runComponentAction(\n\t\t\t\t\t\tloaderConfig.component,\n\t\t\t\t\t\tloaderConfig.action,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmode: loaderConfig.mode || undefined,\n\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\tdocumentType: [\n\t\t\t\t\t\t\t\t\t...getGlobalContext().document.getRawType(),\n\t\t\t\t\t\t\t\t\tgetGlobalContext().document.getCategoryId(),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t).then(\n\t\t\t\t\t\t(response) => {\n\t\t\t\t\t\t\tif (response.data.error)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\twindow.alert(response.data.error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if (response.data.password)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tproperty.Settings.Password = response.data.password;\n\t\t\t\t\t\t\t\thookLinkTextarea.value = hookLinkTextarea\n\t\t\t\t\t\t\t\t\t.value.replace('{{PASSWORD}}', property.Settings.Password)\n\t\t\t\t\t\t\t\t;\n\t\t\t\t\t\t\t\tpasswordAlert.handleCloseBtnClick();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tDom.append(passwordAlert.getContainer(), form);\n\t\t}\n\t}\n\n\t#renderFieldSelectorProperty(property, value, form)\n\t{\n\t\tconst menuId = `@field-selector${Math.random()}`;\n\t\tconst fieldName = `${property.Id}[]`;\n\n\t\tconst fieldsList = property.Settings.Fields;\n\n\t\tconst renderFieldCheckbox = function(field, listNode)\n\t\t{\n\t\t\tconst exists = listNode.querySelector(`[data-field=\"${field.Id}\"]`);\n\t\t\tif (exists)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tDom.append(\n\t\t\t\tTag.render`\n\t\t\t\t\t<div class=\"bizproc-automation-popup-checkbox-item\" data-field=\"${Text.encode(field.Id)}\">\n\t\t\t\t\t\t<label class=\"bizproc-automation-popup-chk-label\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"bizproc-automation-popup-chk\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\tname=\"${Text.encode(fieldName)}\"\n\t\t\t\t\t\t\t\tvalue=\"${Text.encode(field.Id)}\"\n\t\t\t\t\t\t\t\tchecked\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t${Text.encode(field.Name)}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t`,\n\t\t\t\tlistNode,\n\t\t\t);\n\t\t};\n\n\t\tconst fieldSelectorHandler = function(targetNode, listNode)\n\t\t{\n\t\t\tif (BX.Main.MenuManager.getMenuById(menuId))\n\t\t\t{\n\t\t\t\treturn BX.Main.MenuManager.getMenuById(menuId).show();\n\t\t\t}\n\n\t\t\tconst menuItems = [];\n\n\t\t\tfieldsList.forEach((field) => {\n\t\t\t\tmenuItems.push({\n\t\t\t\t\ttext: Text.encode(field.Name),\n\t\t\t\t\tfield,\n\t\t\t\t\tonclick(event, item)\n\t\t\t\t\t{\n\t\t\t\t\t\trenderFieldCheckbox(item.field, listNode);\n\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tMenuManager.show(\n\t\t\t\tmenuId,\n\t\t\t\ttargetNode,\n\t\t\t\tmenuItems,\n\t\t\t\t{\n\t\t\t\t\tautoHide: true,\n\t\t\t\t\toffsetLeft: (Dom.getPosition(this).width / 2),\n\t\t\t\t\tangle: { position: 'top', offset: 0 },\n\t\t\t\t\tzIndex: 200,\n\t\t\t\t\tclassName: 'bizproc-automation-inline-selector-menu',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonPopupClose: (popup) => {\n\t\t\t\t\t\t\tpopup.destroy();\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t};\n\n\t\tDom.append(\n\t\t\tTag.render`\n\t\t\t\t<span class=\"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-autocomplete\">\n\t\t\t\t\t${Text.encode(property.Name)}:\n\t\t\t\t</span>\n\t\t\t`,\n\t\t\tform,\n\t\t);\n\n\t\tconst fieldListNode = Tag.render`<div class=\"bizproc-automation-popup-checkbox\"></div>`;\n\t\tDom.append(fieldListNode, form);\n\n\t\tconst fieldSelectorNode = Tag.render`\n\t\t\t<span class=\"bizproc-automation-popup-settings-link\">${Text.encode(property.Settings.ChooseFieldLabel)}</span>\n\t\t`;\n\t\tEvent.bind(fieldSelectorNode, 'click', function() {\n\t\t\tfieldSelectorHandler(this, fieldListNode);\n\t\t});\n\n\t\tDom.append(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"bizproc-automation-popup-settings bizproc-automation-popup-settings-text\">\n\t\t\t\t\t${fieldSelectorNode}\n\t\t\t\t</div>\n\t\t\t`,\n\t\t\tform,\n\t\t);\n\n\t\tif (Type.isArray(value))\n\t\t{\n\t\t\tvalue.forEach((field) => {\n\t\t\t\tconst foundField = fieldsList.find((fld) => fld.Id === field);\n\t\t\t\tif (foundField)\n\t\t\t\t{\n\t\t\t\t\trenderFieldCheckbox(foundField, fieldListNode);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\trenderExecuteByControl(trigger, form)\n\t{\n\t\tDom.append(\n\t\t\tTag.render`\n\t\t\t\t<span class=\"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-top bizproc-automation-popup-settings-title-autocomplete\">\n\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_TRIGGER_EXECUTE_BY')}:\n\t\t\t\t</span>\n\t\t\t`,\n\t\t\tform,\n\t\t);\n\n\t\tconst documentType = [...getGlobalContext().document.getRawType(), getGlobalContext().document.getCategoryId()];\n\t\tconst property = { Type: 'user' };\n\t\tconst value = (\n\t\t\ttrigger.draft\n\t\t\t\t? Helper.getResponsibleUserExpression(getGlobalContext().document.getFields())\n\t\t\t\t: trigger.getExecuteBy()\n\t\t);\n\n\t\tDom.append(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"bizproc-automation-popup-settings\">\n\t\t\t\t\t${BX.Bizproc.FieldType.renderControl(documentType, property, 'execute_by', value)}\n\t\t\t\t</div>\n\t\t\t`,\n\t\t\tform,\n\t\t);\n\t}\n\n\trenderAllowBackwardsControl(trigger, form)\n\t{\n\t\tDom.append(\n\t\t\tTag.render`\n\t\t\t\t<div class=\"bizproc-automation-popup-checkbox\">\n\t\t\t\t\t<div class=\"bizproc-automation-popup-checkbox-item\">\n\t\t\t\t\t\t<label class=\"bizproc-automation-popup-chk-label\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tclass=\"bizproc-automation-popup-chk\"\n\t\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t\tname=\"allow_backwards\"\n\t\t\t\t\t\t\t\tvalue=\"Y\"\n\t\t\t\t\t\t\t\t${trigger.isBackwardsAllowed() ? 'checked' : ''}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_TRIGGER_ALLOW_REVERSE_1')}\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`,\n\t\t\tform,\n\t\t);\n\t}\n\n\tsetConditionSettingsFromForm(formFields: Object, trigger: Trigger): this\n\t{\n\t\ttrigger.setCondition(ConditionGroup.createFromForm(formFields));\n\n\t\treturn this;\n\t}\n\n\tonRestAppInstall(installed, eventResult)\n\t{\n\t\teventResult.redirect = false;\n\n\t\tsetTimeout(() => {\n\t\t\tajax({\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdataType: 'json',\n\t\t\t\turl: getGlobalContext().ajaxUrl,\n\t\t\t\tdata: {\n\t\t\t\t\tajax_action: 'get_available_triggers',\n\t\t\t\t\tdocument_signed: getGlobalContext().signedDocument,\n\t\t\t\t},\n\t\t\t\tonsuccess(response)\n\t\t\t\t{\n\t\t\t\t\tif (Type.isArray(response.DATA))\n\t\t\t\t\t{\n\t\t\t\t\t\tgetGlobalContext().set('availableTriggers', response.DATA);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t}, 1500);\n\t}\n\n\tinitSettingsDialogControls(node)\n\t{\n\t\tif (!Type.isArray(this.settingsDialogControls))\n\t\t{\n\t\t\tthis.settingsDialogControls = [];\n\t\t}\n\n\t\tconst controlNodes = node.querySelectorAll('[data-role]');\n\t\tfor (const controlNode of controlNodes)\n\t\t{\n\t\t\tlet control = null;\n\t\t\tconst role = controlNode.getAttribute('data-role');\n\n\t\t\tif (role === 'user-selector')\n\t\t\t{\n\t\t\t\tcontrol = BX.Bizproc.UserSelector.decorateNode(controlNode);\n\t\t\t}\n\n\t\t\tBX.UI.Hint.init(controlNode);\n\n\t\t\tif (control)\n\t\t\t{\n\t\t\t\tthis.settingsDialogControls.push(control);\n\t\t\t}\n\t\t}\n\t}\n\n\tdestroySettingsDialogControls()\n\t{\n\t\tif (this.conditionSelector)\n\t\t{\n\t\t\tthis.conditionSelector.destroy();\n\t\t\tthis.conditionSelector = null;\n\t\t}\n\n\t\tif (Type.isArray(this.settingsDialogControls))\n\t\t{\n\t\t\tfor (let i = 0; i < this.settingsDialogControls.length; ++i)\n\t\t\t{\n\t\t\t\tif (Type.isFunction(this.settingsDialogControls[i].destroy))\n\t\t\t\t{\n\t\t\t\t\tthis.settingsDialogControls[i].destroy();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.settingsDialogControls = null;\n\t}\n\n\tgetListByDocumentStatus(statusId): Array<Trigger>\n\t{\n\t\tconst result = [];\n\t\tthis.#triggers.forEach((trigger) => {\n\t\t\tif (trigger.getStatusId() === statusId)\n\t\t\t{\n\t\t\t\tresult.push(trigger);\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tgetReturnProperties(statusId): Array<Object>\n\t{\n\t\tconst result = [];\n\t\tconst exists = {};\n\t\tconst triggers = this.getListByDocumentStatus(statusId);\n\n\t\ttriggers.forEach((trigger) => {\n\t\t\tconst props = trigger.deleted ? [] : trigger.getReturnProperties();\n\t\t\tif (props.length > 0)\n\t\t\t{\n\t\t\t\tprops.forEach((property) => {\n\t\t\t\t\tif (!exists[property.Id])\n\t\t\t\t\t{\n\t\t\t\t\t\tresult.push({\n\t\t\t\t\t\t\tId: property.Id,\n\t\t\t\t\t\t\tObjectId: 'Template',\n\t\t\t\t\t\t\tName: property.Name,\n\t\t\t\t\t\t\tObjectName: trigger.getName(),\n\t\t\t\t\t\t\tType: property.Type,\n\t\t\t\t\t\t\tExpression: `{{~*:${property.Id}}}`,\n\t\t\t\t\t\t\tSystemExpression: `{=Template:${property.Id}}`,\n\t\t\t\t\t\t\tObjectRealId: trigger.getId(),\n\t\t\t\t\t\t});\n\t\t\t\t\t\texists[property.Id] = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tgetReturnProperty(statusId, propertyId): ?Object\n\t{\n\t\tconst properties = this.getReturnProperties(statusId);\n\t\tfor (const property of properties)\n\t\t{\n\t\t\tif (property.Id === propertyId)\n\t\t\t{\n\t\t\t\treturn property;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n}\n","import { Type, Loc } from 'main.core';\n\ntype Hours = number;\ntype Minutes = number;\ntype TimeOffset = number;\ntype InTimeValue = Array<[Hours, Minutes, TimeOffset]>;\n\nexport class DelayInterval\n{\n\tstatic BASIS_TYPE = {\n\t\tCurrentDate: '{=System:Date}',\n\t\tCurrentDateTime: '{=System:Now}',\n\t\tCurrentDateTimeLocal: '{=System:NowLocal}',\n\t};\n\n\tstatic DELAY_TYPE = {\n\t\tAfter: 'after',\n\t\tBefore: 'before',\n\t\tIn: 'in',\n\t};\n\n\t#basis: string = DelayInterval.BASIS_TYPE.CurrentDateTime;\n\t#type: string = DelayInterval.DELAY_TYPE.After;\n\t#value: number = 0;\n\t#valueType: string = 'i';\n\t#workTime: boolean = false;\n\t#waitWorkDay: boolean = false;\n\t#inTime: ?InTimeValue;\n\n\tconstructor(params: ?Object)\n\t{\n\t\tif (Type.isPlainObject(params))\n\t\t{\n\t\t\tif (params.type)\n\t\t\t{\n\t\t\t\tthis.setType(params.type);\n\t\t\t}\n\n\t\t\tif (params.value)\n\t\t\t{\n\t\t\t\tthis.setValue(params.value);\n\t\t\t}\n\n\t\t\tif (params.valueType)\n\t\t\t{\n\t\t\t\tthis.setValueType(params.valueType);\n\t\t\t}\n\n\t\t\tif (params.basis)\n\t\t\t{\n\t\t\t\tthis.setBasis(params.basis);\n\t\t\t}\n\n\t\t\tif (params.workTime)\n\t\t\t{\n\t\t\t\tthis.setWorkTime(params.workTime);\n\t\t\t}\n\n\t\t\tif (params.waitWorkDay)\n\t\t\t{\n\t\t\t\tthis.setWaitWorkDay(params.waitWorkDay);\n\t\t\t}\n\n\t\t\tif (params.inTime)\n\t\t\t{\n\t\t\t\tthis.setInTime(params.inTime);\n\t\t\t}\n\t\t}\n\t}\n\n\tget basis()\n\t{\n\t\treturn this.#basis;\n\t}\n\n\tget type()\n\t{\n\t\treturn this.#type;\n\t}\n\n\tget value()\n\t{\n\t\treturn this.#value;\n\t}\n\n\tget valueType()\n\t{\n\t\treturn this.#valueType;\n\t}\n\n\tget workTime()\n\t{\n\t\treturn this.#workTime;\n\t}\n\n\tget waitWorkDay()\n\t{\n\t\treturn this.#waitWorkDay;\n\t}\n\n\tget inTime(): ?InTimeValue\n\t{\n\t\tif (!this.#inTime)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.#toUserInTime(this.#inTime);\n\t}\n\n\tget inTimeString(): string\n\t{\n\t\tif (!this.#inTime)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tconst userInTime = this.#toUserInTime(this.#inTime);\n\t\tconst hourString = String(userInTime[0]).padStart(2, '0');\n\t\tconst minString = String(userInTime[1]).padStart(2, '0');\n\n\t\treturn `${hourString}:${minString}`;\n\t}\n\n\tclone()\n\t{\n\t\treturn new DelayInterval({\n\t\t\ttype: this.#type,\n\t\t\tvalue: this.#value,\n\t\t\tvalueType: this.#valueType,\n\t\t\tbasis: this.#basis,\n\t\t\tworkTime: this.#workTime,\n\t\t\twaitWorkDay: this.#waitWorkDay,\n\t\t\tinTime: this.#inTime ? [...this.#inTime] : null,\n\t\t});\n\t}\n\n\tstatic isSystemBasis(basis: string): boolean\n\t{\n\t\treturn (\n\t\t\tbasis === this.BASIS_TYPE.CurrentDate\n\t\t\t|| basis === this.BASIS_TYPE.CurrentDateTime\n\t\t\t|| basis === this.BASIS_TYPE.CurrentDateTimeLocal\n\t\t);\n\t}\n\n\tstatic fromString(intervalString, basisFields): this\n\t{\n\t\tif (!intervalString)\n\t\t{\n\t\t\treturn new DelayInterval();\n\t\t}\n\n\t\tintervalString = intervalString.toString().trimStart().replace(/^=/, '');\n\t\tconst params = {\n\t\t\tbasis: DelayInterval.BASIS_TYPE.CurrentDateTime,\n\t\t\tworkTime: false,\n\t\t\tinTime: null,\n\t\t};\n\n\t\tconst values = {\n\t\t\ti: 0,\n\t\t\th: 0,\n\t\t\td: 0,\n\t\t};\n\n\t\tif (intervalString.indexOf('settime(') === 0)\n\t\t{\n\t\t\tintervalString = intervalString.substring(8, intervalString.length - 1);\n\t\t\tconst intervalParts = intervalString.split(')');\n\t\t\tconst setTimeArgs = intervalParts.pop()?.split(',') || [];\n\n\t\t\tconst userOffset = setTimeArgs.length > 3 ? parseInt(setTimeArgs.pop().trim(), 10) : 0;\n\t\t\tconst minute = parseInt(setTimeArgs.pop().trim(), 10);\n\t\t\tconst hour = parseInt(setTimeArgs.pop().trim(), 10);\n\n\t\t\tintervalString = intervalParts.join(')') + setTimeArgs.join(',');\n\t\t\tparams.inTime = [hour || 0, minute || 0];\n\n\t\t\tif (userOffset > 0)\n\t\t\t{\n\t\t\t\tparams.inTime.push(userOffset);\n\t\t\t}\n\t\t}\n\n\t\tif (intervalString.indexOf('dateadd(') === 0 || intervalString.indexOf('workdateadd(') === 0)\n\t\t{\n\t\t\tif (intervalString.indexOf('workdateadd(') === 0)\n\t\t\t{\n\t\t\t\tintervalString = intervalString.substring(12, intervalString.length - 1);\n\t\t\t\tparams.workTime = true;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tintervalString = intervalString.substring(8, intervalString.length - 1);\n\t\t\t}\n\n\t\t\tconst fnArgs = intervalString.split(',');\n\t\t\tparams.basis = fnArgs[0].trim();\n\t\t\tfnArgs[1] = (fnArgs[1] || '').replace(/['\")]+/g, '');\n\t\t\tparams.type = fnArgs[1].indexOf('-') === 0 ? DelayInterval.DELAY_TYPE.Before : DelayInterval.DELAY_TYPE.After;\n\n\t\t\tlet match;\n\t\t\tconst re = /s*([\\d]+)\\s*(i|h|d)\\s*/ig;\n\t\t\twhile (match = re.exec(fnArgs[1]))\n\t\t\t{\n\t\t\t\tvalues[match[2]] = parseInt(match[1], 10);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tparams.basis = intervalString;\n\n\t\t\tif (params.basis === DelayInterval.BASIS_TYPE.CurrentDateTime)\n\t\t\t{\n\t\t\t\tparams.type = DelayInterval.DELAY_TYPE.After;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tparams.type = DelayInterval.DELAY_TYPE.In;\n\t\t\t}\n\t\t}\n\n\t\tif (!DelayInterval.isSystemBasis(params.basis) && BX.type.isArray(basisFields))\n\t\t{\n\t\t\tlet found = false;\n\t\t\tfor (let i = 0, s = basisFields.length; i < s; ++i)\n\t\t\t{\n\t\t\t\tif (params.basis === basisFields[i].SystemExpression || params.basis === basisFields[i].Expression)\n\t\t\t\t{\n\t\t\t\t\tparams.basis = basisFields[i].SystemExpression;\n\t\t\t\t\tfound = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!found)\n\t\t\t{\n\t\t\t\tparams.basis = DelayInterval.BASIS_TYPE.CurrentDateTime;\n\t\t\t}\n\t\t}\n\n\t\tconst minutes = values.i + values.h * 60 + values.d * 60 * 24;\n\n\t\tif (minutes % 1440 === 0)\n\t\t{\n\t\t\tparams.value = minutes / 1440;\n\t\t\tparams.valueType = 'd';\n\t\t}\n\t\telse if (minutes % 60 === 0)\n\t\t{\n\t\t\tparams.value = minutes / 60;\n\t\t\tparams.valueType = 'h';\n\t\t}\n\t\telse\n\t\t{\n\t\t\tparams.value = minutes;\n\t\t\tparams.valueType = 'i';\n\t\t}\n\n\t\tif (\n\t\t\t!params.value\n\t\t\t&& (\n\t\t\t\tparams.basis !== DelayInterval.BASIS_TYPE.CurrentDateTime\n\t\t\t\t|| params.inTime\n\t\t\t)\n\t\t\t&& params.basis\n\t\t)\n\t\t{\n\t\t\tparams.type = DelayInterval.DELAY_TYPE.In;\n\t\t}\n\n\t\treturn new DelayInterval(params);\n\t}\n\n\tstatic fromMinutes(minutes): Array<string>\n\t{\n\t\tlet value;\n\t\tlet type;\n\n\t\tif (minutes % 1440 === 0)\n\t\t{\n\t\t\tvalue = minutes / 1440;\n\t\t\ttype = 'd';\n\t\t}\n\t\telse if (minutes % 60 === 0)\n\t\t{\n\t\t\tvalue = minutes / 60;\n\t\t\ttype = 'h';\n\t\t}\n\t\telse\n\t\t{\n\t\t\tvalue = minutes;\n\t\t\ttype = 'i';\n\t\t}\n\n\t\treturn [value, type];\n\t}\n\n\tstatic toMinutes(value, valueType): number\n\t{\n\t\tlet result = 0;\n\n\t\tswitch (valueType)\n\t\t{\n\t\t\tcase 'i':\n\t\t\t\tresult = value;\n\t\t\t\tbreak;\n\t\t\tcase 'h':\n\t\t\t\tresult = value * 60;\n\t\t\t\tbreak;\n\t\t\tcase 'd':\n\t\t\t\tresult = value * 60 * 24;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tresult = 0;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tsetType(type): this\n\t{\n\t\tif (\n\t\t\ttype !== DelayInterval.DELAY_TYPE.After\n\t\t\t&& type !== DelayInterval.DELAY_TYPE.Before\n\t\t\t&& type !== DelayInterval.DELAY_TYPE.In\n\t\t)\n\t\t{\n\t\t\ttype = DelayInterval.DELAY_TYPE.After;\n\t\t}\n\t\tthis.#type = type;\n\n\t\treturn this;\n\t}\n\n\tsetValue(value): this\n\t{\n\t\tvalue = parseInt(value, 10);\n\t\tthis.#value = value >= 0 ? value : 0;\n\n\t\treturn this;\n\t}\n\n\tsetValueType(valueType: string): this\n\t{\n\t\tif (valueType !== 'i' && valueType !== 'h' && valueType !== 'd')\n\t\t{\n\t\t\tvalueType = 'i';\n\t\t}\n\n\t\tthis.#valueType = valueType;\n\n\t\treturn this;\n\t}\n\n\tsetBasis(basis: string): this\n\t{\n\t\tif (Type.isString(basis) && basis !== '')\n\t\t{\n\t\t\tthis.#basis = basis;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsetWorkTime(flag): this\n\t{\n\t\tthis.#workTime = Boolean(flag);\n\n\t\treturn this;\n\t}\n\n\tsetWaitWorkDay(flag): this\n\t{\n\t\tthis.#waitWorkDay = Boolean(flag);\n\n\t\treturn this;\n\t}\n\n\tsetInTime(value: ?InTimeValue): this\n\t{\n\t\tthis.#inTime = value;\n\n\t\tif (value && !Type.isNumber(value[2]))\n\t\t{\n\t\t\tthis.#inTime[2] = this.#getUserOffset();\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tisNow(): boolean\n\t{\n\t\treturn (\n\t\t\tthis.#type === DelayInterval.DELAY_TYPE.After\n\t\t\t&& this.#basis === DelayInterval.BASIS_TYPE.CurrentDateTime\n\t\t\t&& !this.#value\n\t\t\t&& !this.workTime\n\t\t\t&& !this.inTime\n\t\t);\n\t}\n\n\tsetNow(): void\n\t{\n\t\tthis.setType(DelayInterval.DELAY_TYPE.After);\n\t\tthis.setValue(0);\n\t\tthis.setValueType('i');\n\t\tthis.setBasis(DelayInterval.BASIS_TYPE.CurrentDateTime);\n\t\tthis.setInTime(null);\n\t}\n\n\tserialize(): Object\n\t{\n\t\treturn {\n\t\t\ttype: this.#type,\n\t\t\tvalue: this.#value,\n\t\t\tvalueType: this.#valueType,\n\t\t\tbasis: this.#basis,\n\t\t\tworkTime: this.#workTime ? 1 : 0,\n\t\t\twaitWorkDay: this.#waitWorkDay ? 1 : 0,\n\t\t\tinTime: this.#inTime ? [...this.#inTime] : null,\n\t\t};\n\t}\n\n\ttoExpression(basisFields, workerExpression): string\n\t{\n\t\tlet basis = this.#basis ?? DelayInterval.BASIS_TYPE.CurrentDate;\n\n\t\tif (!DelayInterval.isSystemBasis(basis) && Type.isArray(basisFields))\n\t\t{\n\t\t\tfor (let i = 0, s = basisFields.length; i < s; ++i)\n\t\t\t{\n\t\t\t\tif (basis === basisFields[i].SystemExpression)\n\t\t\t\t{\n\t\t\t\t\tbasis = basisFields[i].Expression;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.isNow() || this.#type === DelayInterval.DELAY_TYPE.In && !this.#workTime && !this.#inTime)\n\t\t{\n\t\t\treturn basis;\n\t\t}\n\n\t\tlet days = 0;\n\t\tlet hours = 0;\n\t\tlet minutes = 0;\n\n\t\tswitch (this.#valueType)\n\t\t{\n\t\t\tcase 'i':\n\t\t\t\tminutes = this.#value;\n\t\t\t\tbreak;\n\t\t\tcase 'h':\n\t\t\t\thours = this.#value;\n\t\t\t\tbreak;\n\t\t\tcase 'd':\n\t\t\t\tdays = this.#value;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet add = '';\n\n\t\tif (days > 0)\n\t\t{\n\t\t\tadd += `${days}d`;\n\t\t}\n\n\t\tif (hours > 0)\n\t\t{\n\t\t\tadd += `${hours}h`;\n\t\t}\n\n\t\tif (minutes > 0)\n\t\t{\n\t\t\tadd += `${minutes}i`;\n\t\t}\n\n\t\tif (add !== '' && this.#type === DelayInterval.DELAY_TYPE.Before)\n\t\t{\n\t\t\tadd = `-${add}`;\n\t\t}\n\n\t\tconst fn = this.#workTime ? 'workdateadd' : 'dateadd';\n\n\t\tif (fn === 'workdateadd' && add === '')\n\t\t{\n\t\t\tadd = '0d';\n\t\t}\n\n\t\tlet worker = '';\n\t\tif (fn === 'workdateadd' && workerExpression)\n\t\t{\n\t\t\tworker = workerExpression;\n\t\t}\n\n\t\tlet result = basis;\n\t\tlet isFunctionInResult = false;\n\t\tif (add !== '')\n\t\t{\n\t\t\tresult = `${fn}(${basis},\"${add}\"${worker ? ',' + worker : ''})`;\n\t\t\tisFunctionInResult = true;\n\t\t}\n\n\t\tif (this.#inTime)\n\t\t{\n\t\t\tresult = `settime(${result}, ${this.#inTime[0] || 0}, ${this.#inTime[1] || 0}, ${this.#inTime[2] || 0})`;\n\t\t\tisFunctionInResult = true;\n\t\t}\n\n\t\treturn isFunctionInResult ? `=${result}` : result;\n\t}\n\n\tformat(emptyText, fields)\n\t{\n\t\tlet str = emptyText;\n\n\t\tif (this.#type === DelayInterval.DELAY_TYPE.In)\n\t\t{\n\t\t\tstr = Loc.getMessage('BIZPROC_AUTOMATION_CMP_IN_TIME_2');\n\t\t\tif (Type.isArray(fields))\n\t\t\t{\n\t\t\t\tfor (const field of fields)\n\t\t\t\t{\n\t\t\t\t\tif (this.#basis === field.SystemExpression)\n\t\t\t\t\t{\n\t\t\t\t\t\tstr += ` ${field.Name}`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.inTime)\n\t\t\t{\n\t\t\t\tstr += ` ${this.inTimeString}`;\n\t\t\t}\n\t\t}\n\t\telse if (this.#value)\n\t\t{\n\t\t\tconst prefix = (\n\t\t\t\tthis.#type === DelayInterval.DELAY_TYPE.After\n\t\t\t\t\t? Loc.getMessage('BIZPROC_AUTOMATION_CMP_THROUGH_3')\n\t\t\t\t\t: Loc.getMessage('BIZPROC_AUTOMATION_CMP_FOR_TIME_3')\n\t\t\t);\n\n\t\t\tstr = `${prefix} ${this.getFormattedPeriodLabel(this.#value, this.#valueType)}`;\n\n\t\t\tif (Type.isArray(fields))\n\t\t\t{\n\t\t\t\tconst fieldSuffix = (\n\t\t\t\t\tthis.#type === DelayInterval.DELAY_TYPE.After\n\t\t\t\t\t\t? Loc.getMessage('BIZPROC_AUTOMATION_CMP_AFTER')\n\t\t\t\t\t\t: Loc.getMessage('BIZPROC_AUTOMATION_CMP_BEFORE_1')\n\t\t\t\t);\n\t\t\t\tfor (const field of fields)\n\t\t\t\t{\n\t\t\t\t\tif (this.#basis === field.SystemExpression)\n\t\t\t\t\t{\n\t\t\t\t\t\tstr += ` ${fieldSuffix} ${field.Name}`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.#workTime)\n\t\t{\n\t\t\tstr += `, ${Loc.getMessage('BIZPROC_AUTOMATION_CMP_IN_WORKTIME')}`;\n\t\t}\n\n\t\treturn str;\n\t}\n\n\tgetFormattedPeriodLabel(value, type)\n\t{\n\t\tconst label = `${value} `;\n\t\tlet labelIndex = 0;\n\t\tif (value > 20)\n\t\t{\n\t\t\tvalue %= 10;\n\t\t}\n\n\t\tif (value === 1)\n\t\t{\n\t\t\tlabelIndex = 0;\n\t\t}\n\t\telse if (value > 1 && value < 5)\n\t\t{\n\t\t\tlabelIndex = 1;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tlabelIndex = 2;\n\t\t}\n\n\t\tconst labels = DelayInterval.getPeriodLabels(type);\n\n\t\treturn label + (labels ? labels[labelIndex] : '');\n\t}\n\n\tstatic getPeriodLabels(period)\n\t{\n\t\tlet labels = [];\n\t\tswitch (period)\n\t\t{\n\t\t\tcase 'i': {\n\t\t\t\tlabels = [\n\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_MIN1'),\n\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_MIN2'),\n\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_MIN3'),\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'h': {\n\t\t\t\tlabels = [\n\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_HOUR1'),\n\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_HOUR2'),\n\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_HOUR3'),\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'd': {\n\t\t\t\tlabels = [\n\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_DAY1'),\n\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_DAY2'),\n\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_DAY3'),\n\t\t\t\t];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tlabels = [];\n\t\t}\n\n\t\treturn labels;\n\t}\n\n\t#getUserOffset(): number\n\t{\n\t\tconst userOffset = Number(Loc.getMessage('USER_TZ_OFFSET'));\n\t\tif (Type.isNumber(userOffset))\n\t\t{\n\t\t\treturn userOffset;\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t#toUserInTime(inTime: ?InTimeValue): ?InTimeValue\n\t{\n\t\tconst userOffset = this.#getUserOffset();\n\n\t\tif (!Type.isNumber(inTime[2]) || inTime[2] === userOffset)\n\t\t{\n\t\t\treturn [...inTime];\n\t\t}\n\n\t\tconst diffOffsetMin = Math.floor((inTime[2] - userOffset) / 60);\n\t\tlet allMinutes = inTime[0] * 60 + inTime[1] - diffOffsetMin;\n\n\t\tif (allMinutes < 0)\n\t\t{\n\t\t\tallMinutes += 24 * 60;\n\t\t}\n\n\t\tconst userHour = Math.floor(allMinutes / 60);\n\t\tconst userMin = allMinutes % 60;\n\n\t\treturn [userHour, userMin, userOffset];\n\t}\n}\n","import { Event, Text, Type, Dom, Loc } from 'main.core';\n\nexport class HelpHint\n{\n\tstatic popupHint;\n\tstatic timeout;\n\n\tstatic bindAll(node)\n\t{\n\t\tnode.querySelectorAll('[data-text]').forEach((element) => HelpHint.bindToNode(element));\n\t}\n\n\tstatic bindToNode(node)\n\t{\n\t\tEvent.bind(node, 'mouseover', this.showHint.bind(this, node));\n\t\tEvent.bind(node, 'mouseout', this.hideHint.bind(this));\n\t}\n\n\tstatic isBindedToNode(node): boolean\n\t{\n\t\treturn !!this.popupHint?.bindElement?.isSameNode(node);\n\t}\n\n\tstatic showHint(node)\n\t{\n\t\tconst rawText = node.getAttribute('data-text');\n\t\tif (!rawText)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tlet text = Text.encode(rawText);\n\t\ttext = BX.util.nl2br(text);\n\n\t\tif (!Type.isStringFilled(text))\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tthis.hideHint();\n\n\t\tthis.popupHint = new BX.PopupWindow('bizproc-automation-help-tip', node, {\n\t\t\tlightShadow: true,\n\t\t\tautoHide: false,\n\t\t\tdarkMode: true,\n\t\t\toffsetLeft: 0,\n\t\t\toffsetTop: 2,\n\t\t\tbindOptions: {position: \"top\"},\n\t\t\tevents : {\n\t\t\t\tonPopupClose()\n\t\t\t\t{\n\t\t\t\t\tthis.destroy();\n\t\t\t\t},\n\t\t\t},\n\t\t\tcontent : Dom.create('div', {\n\t\t\t\tattrs : {\n\t\t\t\t\tstyle : 'padding-right: 5px; width: 250px;'\n\t\t\t\t},\n\t\t\t\thtml: text\n\t\t\t}),\n\t\t});\n\t\tthis.popupHint.setAngle({offset: 32, position: 'bottom'});\n\t\tthis.popupHint.show();\n\n\t\treturn true;\n\t}\n\n\tstatic showNoPermissionsHint(node)\n\t{\n\t\tthis.showAngleHint(node, Loc.getMessage('BIZPROC_AUTOMATION_RIGHTS_ERROR_1'));\n\t}\n\n\tstatic showAngleHint(node, text)\n\t{\n\t\tif (this.timeout)\n\t\t{\n\t\t\tclearTimeout(this.timeout);\n\t\t}\n\n\t\tthis.popupHint = BX.UI.Hint.createInstance({\n\t\t\tpopupParameters: {\n\t\t\t\twidth: 334,\n\t\t\t\theight: 104,\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tautoHide: true,\n\t\t\t\tangle: {offset: Dom.getPosition(node).width / 2},\n\t\t\t\tbindOptions: {position: 'top'},\n\t\t\t}\n\t\t});\n\n\t\tthis.popupHint.close = function ()\n\t\t{\n\t\t\tthis.hide();\n\t\t};\n\t\tthis.popupHint.show(node, text);\n\t\tthis.timeout = setTimeout(this.hideHint.bind(this), 5000);\n\t}\n\n\tstatic hideHint()\n\t{\n\t\tif (this.popupHint)\n\t\t{\n\t\t\tthis.popupHint.close();\n\t\t}\n\t\tthis.popupHint = null;\n\t}\n}\n","export class WorkflowStatus\n{\n\tstatic CREATED = 0;\n\tstatic RUNNING = 1;\n\tstatic COMPLETED = 2;\n\tstatic SUSPENDED = 3;\n\tstatic TERMINATED = 4;\n}","import {WorkflowStatus} from \"../workflow/types\";\n\nexport class TrackingEntry\n{\n\tstatic UNKNOWN_ACTIVITY_TYPE = 0;\n\tstatic EXECUTE_ACTIVITY_TYPE = 1;\n\tstatic CLOSE_ACTIVITY_TYPE = 2;\n\tstatic CANCEL_ACTIVITY_TYPE = 3;\n\tstatic FAULT_ACTIVITY_TYPE = 4;\n\tstatic CUSTOM_ACTIVITY_TYPE = 5;\n\tstatic REPORT_ACTIVITY_TYPE = 6;\n\tstatic ATTACHED_ENTITY_TYPE = 7;\n\tstatic TRIGGER_ACTIVITY_TYPE = 8;\n\tstatic ERROR_ACTIVITY_TYPE = 9;\n\tstatic DEBUG_ACTIVITY_TYPE = 10;\n\tstatic DEBUG_AUTOMATION_TYPE = 11;\n\tstatic DEBUG_DESIGNER_TYPE = 12;\n\tstatic DEBUG_LINK_TYPE = 13;\n\n\tid: number;\n\tworkflowId: string;\n\t#type: number;\n\tname: string;\n\ttitle: string;\n\tnote: string;\n\t// TODO - convert string to Date\n\tdatetime: string;\n\t#workflowStatus: number;\n\n\tget type(): number\n\t{\n\t\treturn this.#type;\n\t}\n\n\tget workflowStatus(): number\n\t{\n\t\treturn this.#workflowStatus;\n\t}\n\n\tset type(entryType: number)\n\t{\n\t\tif (TrackingEntry.getAllActivityTypes().includes(entryType))\n\t\t{\n\t\t\tthis.#type = entryType;\n\t\t}\n\t}\n\n\tset workflowStatus(entryWorkflowStatus: number)\n\t{\n\t\tif (TrackingEntry.getAllWorkflowStatuses().includes(entryWorkflowStatus))\n\t\t{\n\t\t\tthis.#workflowStatus = entryWorkflowStatus;\n\t\t}\n\t}\n\n\tisTriggerEntry(): boolean\n\t{\n\t\treturn this.type === TrackingEntry.TRIGGER_ACTIVITY_TYPE;\n\t}\n\n\tstatic getAllActivityTypes(): Array<number>\n\t{\n\t\treturn [\n\t\t\tTrackingEntry.UNKNOWN_ACTIVITY_TYPE,\n\t\t\tTrackingEntry.EXECUTE_ACTIVITY_TYPE,\n\t\t\tTrackingEntry.CLOSE_ACTIVITY_TYPE,\n\t\t\tTrackingEntry.CANCEL_ACTIVITY_TYPE,\n\t\t\tTrackingEntry.FAULT_ACTIVITY_TYPE,\n\t\t\tTrackingEntry.CUSTOM_ACTIVITY_TYPE,\n\t\t\tTrackingEntry.REPORT_ACTIVITY_TYPE,\n\t\t\tTrackingEntry.ATTACHED_ENTITY_TYPE,\n\t\t\tTrackingEntry.TRIGGER_ACTIVITY_TYPE,\n\t\t\tTrackingEntry.ERROR_ACTIVITY_TYPE,\n\t\t\tTrackingEntry.DEBUG_ACTIVITY_TYPE,\n\t\t\tTrackingEntry.DEBUG_AUTOMATION_TYPE,\n\t\t\tTrackingEntry.DEBUG_DESIGNER_TYPE,\n\t\t\tTrackingEntry.DEBUG_LINK_TYPE,\n\t\t];\n\t}\n\n\tstatic isKnownActivityType(typeId: number): boolean\n\t{\n\t\treturn TrackingEntry.getAllActivityTypes().includes(typeId);\n\t}\n\n\tstatic getAllWorkflowStatuses(): Array<number>\n\t{\n\t\treturn [\n\t\t\tWorkflowStatus.CREATED,\n\t\t\tWorkflowStatus.RUNNING,\n\t\t\tWorkflowStatus.COMPLETED,\n\t\t\tWorkflowStatus.SUSPENDED,\n\t\t\tWorkflowStatus.TERMINATED,\n\t\t];\n\t}\n\n\tstatic isKnownWorkflowStatus(statusId: number): boolean\n\t{\n\t\treturn TrackingEntry.getAllWorkflowStatuses().includes(statusId);\n\t}\n}","export class TrackingStatus\n{\n\tstatic WAITING = 0;\n\tstatic RUNNING = 1;\n\tstatic COMPLETED = 2;\n\tstatic AUTOCOMPLETED = 3;\n}","import {Type} from 'main.core';\nimport { TrackingEntry } from 'bizproc.automation';\nimport { TrackingStatus } from './types';\nimport {WorkflowStatus} from \"../workflow/types\";\n\nexport class RobotEntry\n{\n\tid: string = '';\n\tstatus: string = TrackingStatus.WAITING;\n\t// TODO - change string to Date when Date appear in TrackingEntry\n\tmodified: ?string = undefined;\n\tnotes: Array<string> = [];\n\terrors: Array<string> = [];\n\t#entryId: number = -1;\n\tworkflowStatus: number = WorkflowStatus.CREATED;\n\n\tconstructor(entries: ?Array<TrackingEntry>)\n\t{\n\t\tif (Type.isArray(entries))\n\t\t{\n\t\t\tfor (const entry of entries)\n\t\t\t{\n\t\t\t\tthis.addEntry(entry);\n\t\t\t}\n\t\t}\n\t}\n\n\taddEntry(entry: TrackingEntry)\n\t{\n\t\tthis.id = entry.name;\n\n\t\tif (this.#entryId < entry.id)\n\t\t{\n\t\t\tthis.#entryId = entry.id;\n\t\t\tthis.modified = entry.datetime;\n\t\t\tthis.workflowStatus = entry.workflowStatus;\n\n\t\t\tif (entry.type === TrackingEntry.CLOSE_ACTIVITY_TYPE)\n\t\t\t{\n\t\t\t\tthis.status = TrackingStatus.COMPLETED;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.status = TrackingStatus.RUNNING;\n\t\t\t}\n\t\t}\n\n\t\tif (entry.type === TrackingEntry.ERROR_ACTIVITY_TYPE)\n\t\t{\n\t\t\tthis.errors.push(entry.note);\n\t\t}\n\t\telse if (entry.type === TrackingEntry.CUSTOM_ACTIVITY_TYPE)\n\t\t{\n\t\t\tthis.notes.push(entry.note);\n\t\t}\n\t}\n}","import { TrackingEntry } from 'bizproc.automation';\nimport { TrackingStatus } from './types';\n\nexport class TriggerEntry\n{\n\tid: string = '';\n\tstatus: number = TrackingStatus.COMPLETED;\n\t// TODO - change string to Date when Date appear in TrackingEntry\n\tmodified: ?string = undefined;\n\n\tconstructor(entry: TrackingEntry)\n\t{\n\t\tif (entry.isTriggerEntry())\n\t\t{\n\t\t\tthis.id = entry.note;\n\t\t\tthis.modified = entry.datetime;\n\t\t}\n\t}\n}","import { Type } from 'main.core';\nimport { TrackingEntry } from './tracking-entry';\nimport { WorkflowStatus } from \"../workflow/types\";\n\nexport class TrackingEntryBuilder\n{\n\t#defaultSettings = {\n\t\tid: TrackingEntry.UNKNOWN_ACTIVITY_TYPE,\n\t\tworkflowId: '',\n\t\ttype: TrackingEntry.EXECUTE_ACTIVITY_TYPE,\n\t\tname: '',\n\t\ttitle: '',\n\t\tdatetime: '',\n\t\tnote: '',\n\t\tworkflowStatus: WorkflowStatus.CREATED,\n\t};\n\t#entrySettings: Object<string, string | number>;\n\n\tconstructor()\n\t{\n\t\tthis.#entrySettings = this.#defaultSettings;\n\t}\n\n\tsetLogEntry(logEntry: Object<string, any>): this\n\t{\n\t\tthis.#entrySettings = Object.assign({}, this.#defaultSettings);\n\t\tlogEntry = Object.assign({}, logEntry);\n\n\t\tif (Type.isStringFilled(logEntry['ID']))\n\t\t{\n\t\t\tlogEntry['ID'] = parseInt(logEntry['ID']);\n\t\t}\n\t\tif (Type.isStringFilled(logEntry['TYPE']))\n\t\t{\n\t\t\tlogEntry['TYPE'] = parseInt(logEntry['TYPE']);\n\t\t}\n\n\t\tif (Type.isNumber(logEntry['ID']))\n\t\t{\n\t\t\tthis.#entrySettings.id = logEntry['ID'];\n\t\t}\n\t\tif (Type.isStringFilled(logEntry['WORKFLOW_ID']))\n\t\t{\n\t\t\tthis.#entrySettings.workflowId = logEntry['WORKFLOW_ID'];\n\t\t}\n\t\tif (Type.isNumber(logEntry['TYPE']) && TrackingEntry.isKnownActivityType(logEntry['TYPE']))\n\t\t{\n\t\t\tthis.#entrySettings.type = logEntry['TYPE'];\n\t\t}\n\t\tif (Type.isStringFilled(logEntry['MODIFIED']))\n\t\t{\n\t\t\tthis.#entrySettings.datetime = logEntry['MODIFIED'];\n\t\t}\n\t\tif (Type.isNumber(logEntry['WORKFLOW_STATUS']) && TrackingEntry.isKnownWorkflowStatus(logEntry['WORKFLOW_STATUS']))\n\t\t{\n\t\t\tthis.#entrySettings.workflowStatus = logEntry['WORKFLOW_STATUS'];\n\t\t}\n\n\t\tthis.#entrySettings.name = String(logEntry['ACTION_NAME']);\n\t\tthis.#entrySettings.title = String(logEntry['ACTION_TITLE']);\n\t\tthis.#entrySettings.note = String(logEntry['ACTION_NOTE']);\n\n\t\treturn this;\n\t}\n\n\tsetStatus(status: string): this\n\t{\n\t\tthis.#entrySettings.status = status;\n\n\t\treturn this;\n\t}\n\n\tbuild(): TrackingEntry\n\t{\n\t\tconst entry = new TrackingEntry();\n\n\t\tentry.id = this.#entrySettings.id;\n\t\tentry.workflowId = this.#entrySettings.workflowId;\n\t\tentry.type = this.#entrySettings.type;\n\t\tentry.name = this.#entrySettings.name;\n\t\tentry.title = this.#entrySettings.title;\n\t\tentry.note = this.#entrySettings.note;\n\t\tentry.datetime = this.#entrySettings.datetime;\n\t\tentry.workflowStatus = this.#entrySettings.workflowStatus;\n\n\t\treturn entry;\n\t}\n}","import { Type } from 'main.core';\nimport { TrackingEntry } from './tracking-entry';\nimport { RobotEntry } from './robot-entry';\nimport { TriggerEntry } from './trigger-entry';\nimport { TrackingEntryBuilder } from './tracking-entry-builder';\nimport { Document } from 'bizproc.automation';\nimport { TrackingStatus } from './types';\nimport { WorkflowStatus } from \"../workflow/types\";\n\nexport {\n\tRobotEntry,\n\tTriggerEntry,\n\tTrackingEntryBuilder,\n\tTrackingEntry,\n\tTrackingStatus,\n}\n\nexport class Tracker\n{\n\t#ajaxUrl: string;\n\t#document: ?Document;\n\n\t#triggerLogs: Object<string, TrackingEntry>;\n\t#robotLogs: Object<string, RobotEntry>;\n\n\tconstructor(document: ?Document, ajaxUrl: string)\n\t{\n\t\tthis.#ajaxUrl = ajaxUrl;\n\t\tthis.#document = document;\n\t}\n\n\tinit(log)\n\t{\n\t\tthis.#triggerLogs = {};\n\t\tthis.#robotLogs = {};\n\n\t\tthis.addLogs(log);\n\t}\n\n\treInit(log)\n\t{\n\t\tthis.init(log);\n\t}\n\n\taddLogs(log: Object<string, Array<Object<string, any>>>)\n\t{\n\t\tif (!Type.isPlainObject(log))\n\t\t{\n\t\t\tlog = {};\n\t\t}\n\n\t\tconst logEntryBuilder = new TrackingEntryBuilder();\n\n\t\tfor (const [statusId, entries] of Object.entries(log))\n\t\t{\n\t\t\tif (!Type.isArray(entries))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tfor (const rawEntry of entries)\n\t\t\t{\n\t\t\t\tconst entry = logEntryBuilder.setLogEntry(rawEntry).build();\n\n\t\t\t\tif (entry.isTriggerEntry())\n\t\t\t\t{\n\t\t\t\t\tthis.addTriggerEntry(entry);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.addRobotEntry(entry);\n\t\t\t\t\tconst robotEntry = this.#robotLogs[entry.name];\n\n\t\t\t\t\tif (!Type.isNil(this.#document))\n\t\t\t\t\t{\n\t\t\t\t\t\tconst isRobotRunning = (robotEntry.status === TrackingStatus.RUNNING);\n\t\t\t\t\t\tconst isWorkflowCompleted =\n\t\t\t\t\t\t\t(robotEntry.workflowStatus === WorkflowStatus.COMPLETED)\n\t\t\t\t\t\t;\n\t\t\t\t\t\tconst isCurrentStatus = (this.#document.getCurrentStatusId() === statusId);\n\n\t\t\t\t\t\tconst isRobotRunningAtAnotherStatus = isRobotRunning && !isCurrentStatus;\n\t\t\t\t\t\tconst isRobotRunningAndCurrentWorkflowCompleted =\n\t\t\t\t\t\t\tisRobotRunning && isWorkflowCompleted && isCurrentStatus\n\t\t\t\t\t\t;\n\n\t\t\t\t\t\tif (isRobotRunningAtAnotherStatus || isRobotRunningAndCurrentWorkflowCompleted)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\trobotEntry.status = TrackingStatus.COMPLETED;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\taddTriggerEntry(entry: TrackingEntry)\n\t{\n\t\tif (entry.isTriggerEntry())\n\t\t{\n\t\t\tthis.#triggerLogs[entry.note] = new TriggerEntry(entry);\n\t\t}\n\t}\n\n\taddRobotEntry(entry: TrackingEntry)\n\t{\n\t\tif (entry.isTriggerEntry())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.#robotLogs[entry.name])\n\t\t{\n\t\t\tthis.#robotLogs[entry.name] = new RobotEntry([entry]);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#robotLogs[entry.name].addEntry(entry);\n\t\t}\n\t}\n\n\tgetRobotLog(id: string): ?RobotEntry\n\t{\n\t\treturn this.#robotLogs[id] || null;\n\t}\n\n\tgetTriggerLog(id: string): ?TriggerEntry\n\t{\n\t\treturn this.#triggerLogs[id] || null;\n\t}\n\n\tupdate(documentSigned: string)\n\t{\n\t\treturn BX.ajax({\n\t\t\tmethod: 'POST',\n\t\t\tdataType: 'json',\n\t\t\turl: this.#ajaxUrl,\n\t\t\tdata: {\n\t\t\t\tajax_action: 'get_log',\n\t\t\t\tdocument_signed: documentSigned\n\t\t\t},\n\t\t\tonsuccess: (response) => {\n\t\t\t\tif (response.DATA && response.DATA.LOG)\n\t\t\t\t{\n\t\t\t\t\tthis.reInit(response.DATA.LOG);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Dom, Type, Event, Text, Loc, Runtime, Tag } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { Template } from './template';\nimport { DelayInterval } from './delay-interval';\nimport { ViewMode } from './view-mode';\nimport { HelpHint } from './help-hint';\nimport { ConditionGroup, Helper, Document } from 'bizproc.automation';\nimport { Tracker } from './tracker/tracker';\nimport { TrackingStatus } from './tracker/types';\nimport { Menu, MenuItem } from 'main.popup';\n\nexport class Robot extends EventEmitter\n{\n\tSYSTEM_EXPRESSION_PATTERN = '\\\\{=\\\\s*(?<object>[a-z0-9_]+)\\\\s*\\\\:\\\\s*(?<field>[a-z0-9_\\\\.]+)(\\\\s*>\\\\s*(?<mod1>[a-z0-9_\\\\:]+)(\\\\s*,\\\\s*(?<mod2>[a-z0-9_]+))?)?\\\\s*\\\\}';\n\n\t#data: Object<string, any>;\n\t#document: Document;\n\t#template: ?Template;\n\t#tracker: ?Object;\n\t#delay: DelayInterval;\n\t#node: HTMLElement;\n\t#condition: ConditionGroup;\n\t#isDraft: boolean;\n\n\t#isFrameMode: boolean;\n\t#viewMode: ViewMode;\n\n\t#customOnBeforeSaveRobotSettings: Function = () => {};\n\n\tconstructor(params: {\n\t\tdocument: Document,\n\t\ttemplate: ?Template,\n\t\tisFrameMode: boolean,\n\t\ttracker: Tracker,\n\t})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Bizproc.Automation');\n\n\t\tthis.#document = params.document;\n\t\tif (!Type.isNil(params.template))\n\t\t{\n\t\t\tthis.#template = params.template;\n\t\t}\n\t\tthis.#isFrameMode = params.isFrameMode;\n\t\tthis.#viewMode = ViewMode.none();\n\t\tthis.#tracker = params.tracker;\n\t\tthis.#isDraft = false;\n\n\t\tthis.#delay = new DelayInterval();\n\t}\n\n\tget node()\n\t{\n\t\treturn this.#node;\n\t}\n\n\tget data()\n\t{\n\t\treturn {\n\t\t\t...this.#data,\n\t\t\tCondition: this.#condition.serialize(),\n\t\t\tDelay: this.#delay.serialize(),\n\t\t};\n\t}\n\n\tget draft()\n\t{\n\t\treturn this.#isDraft;\n\t}\n\n\tset draft(draft: boolean)\n\t{\n\t\tthis.#isDraft = draft;\n\t}\n\n\tget template()\n\t{\n\t\treturn this.#template;\n\t}\n\n\thasTemplate(): boolean\n\t{\n\t\treturn !Type.isNil(this.#template);\n\t}\n\n\tgetTemplate(): ?Template\n\t{\n\t\treturn this.#template;\n\t}\n\n\tgetDocument(): Document\n\t{\n\t\treturn this.#document;\n\t}\n\n\tstatic generateName(): string\n\t{\n\t\treturn (\n\t\t\t`A${parseInt(Math.random() * 100_000, 10)\n\t\t\t}_${parseInt(Math.random() * 100_000, 10)\n\t\t\t}_${parseInt(Math.random() * 100_000, 10)\n\t\t\t}_${parseInt(Math.random() * 100_000, 10)}`\n\t\t);\n\t}\n\n\tclone(): Robot\n\t{\n\t\tconst clonedRobot = new Robot({\n\t\t\tdocument: this.#document,\n\t\t\ttemplate: this.#template,\n\t\t\tisFrameMode: this.#isFrameMode,\n\t\t\ttracker: this.#tracker,\n\t\t});\n\n\t\tconst robotData = {\n\t\t\t...Runtime.clone(this.#data),\n\t\t\tName: Robot.generateName(),\n\t\t\tDelay: this.getDelayInterval().serialize(),\n\t\t\tCondition: this.getCondition().serialize(),\n\t\t};\n\t\tclonedRobot.init(robotData, this.#viewMode);\n\n\t\treturn clonedRobot;\n\t}\n\n\tisEqual(other: Robot): boolean\n\t{\n\t\treturn this.#data.Name === other.#data.Name;\n\t}\n\n\tinit(data: Object, viewMode: ?ViewMode): void\n\t{\n\t\tif (Type.isPlainObject(data))\n\t\t{\n\t\t\tthis.#data = { ...data };\n\t\t}\n\n\t\tif (!this.#data.Name)\n\t\t{\n\t\t\tthis.#data.Name = Robot.generateName();\n\t\t}\n\t\tthis.#data.Activated = Type.isNil(this.#data.Activated) ? true : Text.toBoolean(this.#data.Activated);\n\n\t\tthis.#delay = new DelayInterval(this.#data.Delay);\n\t\tthis.#condition = new ConditionGroup(this.#data.Condition);\n\t\tif (!this.#data.Condition)\n\t\t{\n\t\t\tthis.#condition.type = ConditionGroup.CONDITION_TYPE.Mixed;\n\t\t}\n\n\t\tdelete this.#data.Condition;\n\t\tdelete this.#data.Delay;\n\n\t\tthis.#viewMode = Type.isNil(viewMode) ? ViewMode.edit() : viewMode;\n\t\tif (!this.#viewMode.isNone())\n\t\t{\n\t\t\tthis.#node = this.createNode();\n\t\t}\n\t}\n\n\treInit(data: Object, viewMode: ?ViewMode): void\n\t{\n\t\tif (Type.isNil(viewMode) && this.#viewMode.isNone())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst node = this.#node;\n\t\tthis.#node = this.createNode();\n\t\tif (node.parentNode)\n\t\t{\n\t\t\tDom.replace(node, this.#node);\n\t\t}\n\t}\n\n\tdestroy()\n\t{\n\t\tDom.remove(this.#node);\n\t\tthis.emit('Robot:destroyed');\n\t}\n\n\tcanEdit(): boolean\n\t{\n\t\treturn this.#template.canEdit();\n\t}\n\n\tgetProperties(): Object\n\t{\n\t\tif (this.#data && Type.isPlainObject(this.#data.Properties))\n\t\t{\n\t\t\treturn this.#data.Properties;\n\t\t}\n\n\t\treturn {};\n\t}\n\n\tgetProperty(name: string): ?Object\n\t{\n\t\treturn this.getProperties()[name] || null;\n\t}\n\n\thasProperty(name: string): boolean\n\t{\n\t\treturn Object.hasOwn(this.getProperties(), name);\n\t}\n\n\tsetProperty(name: string, value: any): Robot\n\t{\n\t\tthis.#data.Properties[name] = value;\n\n\t\treturn this;\n\t}\n\n\tgetId(): ?string\n\t{\n\t\treturn this.#data.Name || null;\n\t}\n\n\tgetLogStatus(): number\n\t{\n\t\tlet status = TrackingStatus.WAITING;\n\t\tlet log = this.#tracker.getRobotLog(this.getId());\n\n\t\tif (log)\n\t\t{\n\t\t\tstatus = log.status;\n\t\t}\n\t\telse if (this.#data.DelayName)\n\t\t{\n\t\t\tlog = this.#tracker.getRobotLog(this.#data.DelayName);\n\t\t\tif (log && log.status === TrackingStatus.RUNNING)\n\t\t\t{\n\t\t\t\tstatus = TrackingStatus.RUNNING;\n\t\t\t}\n\t\t}\n\n\t\treturn status;\n\t}\n\n\tgetLogErrors(): Array<string>\n\t{\n\t\tlet errors = [];\n\t\tconst log = this.#tracker.getRobotLog(this.getId());\n\t\tif (log && log.errors)\n\t\t{\n\t\t\terrors = log.errors;\n\t\t}\n\n\t\treturn errors;\n\t}\n\n\tgetDelayNotes(): Array<string>\n\t{\n\t\tif (this.#data.DelayName)\n\t\t{\n\t\t\tconst log = this.#tracker.getRobotLog(this.#data.DelayName);\n\t\t\tif (log && log.status === TrackingStatus.RUNNING)\n\t\t\t{\n\t\t\t\treturn log.notes;\n\t\t\t}\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tselectNode(): void\n\t{\n\t\tif (this.#node)\n\t\t{\n\t\t\tDom.addClass(this.#node, '--selected');\n\n\t\t\tconst checkboxNode = this.#node.querySelector('input');\n\t\t\tif (checkboxNode)\n\t\t\t{\n\t\t\t\tcheckboxNode.checked = true;\n\t\t\t}\n\n\t\t\tthis.emit('Robot:selected');\n\t\t}\n\t}\n\n\tunselectNode()\n\t{\n\t\tif (this.#node)\n\t\t{\n\t\t\tDom.removeClass(this.#node, '--selected');\n\n\t\t\tconst checkboxNode = this.#node.querySelector('input');\n\t\t\tif (checkboxNode)\n\t\t\t{\n\t\t\t\tcheckboxNode.checked = false;\n\t\t\t}\n\n\t\t\tthis.emit('Robot:unselected');\n\t\t}\n\t}\n\n\tisSelected()\n\t{\n\t\treturn this.#node && Dom.hasClass(this.#node, '--selected');\n\t}\n\n\tisActivated(): boolean\n\t{\n\t\treturn Text.toBoolean(this.#data.Activated);\n\t}\n\n\tisInvalid(): boolean\n\t{\n\t\treturn this.#data.viewData?.isInvalid === true;\n\t}\n\n\tsetActivated(activated: boolean): this\n\t{\n\t\tthis.#data.Activated = Text.toBoolean(activated);\n\t\tthis.emit(this.#data.Activated === true ? 'Robot:onAfterActivated' : 'Robot:onAfterDeactivated');\n\n\t\treturn this;\n\t}\n\n\tenableManageMode(isActive: boolean)\n\t{\n\t\tthis.#viewMode = ViewMode.manage().setProperty('isActive', isActive);\n\n\t\tif (!isActive)\n\t\t{\n\t\t\tDom.addClass(this.#node, '--locked-node');\n\t\t}\n\n\t\tconst deleteButton = this.#node.querySelector('.bizproc-automation-robot-btn-delete');\n\t\tDom.hide(deleteButton);\n\n\t\tthis.#node.onclick = () => {\n\t\t\tif (!this.#viewMode.isManage() || !this.#viewMode.getProperty('isActive', false))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.isSelected())\n\t\t\t{\n\t\t\t\tthis.selectNode();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.unselectNode();\n\t\t\t}\n\t\t};\n\t}\n\n\tdisableManageMode()\n\t{\n\t\tthis.#viewMode = ViewMode.edit();\n\t\tthis.unselectNode();\n\t\tDom.removeClass(this.#node, '--locked-node');\n\n\t\tconst deleteButton = this.#node.querySelector('.bizproc-automation-robot-btn-delete');\n\t\tDom.show(deleteButton);\n\n\t\tthis.#node.onclick = undefined;\n\t}\n\n\tcreateNode(): HTMLElement\n\t{\n\t\tlet wrapperClass = 'bizproc-automation-robot-container-wrapper';\n\t\tlet containerClass = 'bizproc-automation-robot-container';\n\n\t\tif (this.#viewMode.isEdit() && this.canEdit() && this.#canEditRobot())\n\t\t{\n\t\t\twrapperClass += ' bizproc-automation-robot-container-wrapper-draggable';\n\t\t}\n\n\t\tif (this.isActivated() === false)\n\t\t{\n\t\t\tcontainerClass += ' --deactivated';\n\t\t\twrapperClass += ' --deactivated';\n\t\t}\n\n\t\tif (this.isInvalid())\n\t\t{\n\t\t\tcontainerClass += ' --invalid';\n\t\t\twrapperClass += ' --invalid';\n\t\t}\n\n\t\tif (this.draft)\n\t\t{\n\t\t\tcontainerClass += ' --draft';\n\t\t}\n\n\t\tconst targetLabel = Loc.getMessage('BIZPROC_AUTOMATION_CMP_TO');\n\t\tconst targetNode = Tag.render`\n\t\t\t<a\n\t\t\t\tclass=\"bizproc-automation-robot-settings-name ${(this.#viewMode.isView() ? '--mode-view' : '')}\"\n\t\t\t\ttitle=\"${Loc.getMessage('BIZPROC_AUTOMATION_CMP_AUTOMATICALLY')}\"\n\t\t\t>${Loc.getMessage('BIZPROC_AUTOMATION_CMP_AUTOMATICALLY')}</a>\n\t\t`;\n\n\t\tif (Type.isPlainObject(this.#data.viewData) && this.#data.viewData.responsibleLabel)\n\t\t{\n\t\t\tlet labelText = (\n\t\t\t\tthis.#data.viewData.responsibleLabel\n\t\t\t\t\t.replace('{=Document:ASSIGNED_BY_ID}', Loc.getMessage('BIZPROC_AUTOMATION_CMP_RESPONSIBLE'))\n\t\t\t\t\t.replace('author', Loc.getMessage('BIZPROC_AUTOMATION_CMP_RESPONSIBLE'))\n\t\t\t\t\t.replace(/\\{=Constant\\:Constant[0-9]+\\}/, Loc.getMessage('BIZPROC_AUTOMATION_ASK_CONSTANT'))\n\t\t\t\t\t.replace(/\\{\\{~&\\:Constant[0-9]+\\}\\}/, Loc.getMessage('BIZPROC_AUTOMATION_ASK_CONSTANT'))\n\t\t\t\t\t.replace(/\\{=Template\\:Parameter[0-9]+\\}/, Loc.getMessage('BIZPROC_AUTOMATION_ASK_PARAMETER'))\n\t\t\t\t\t.replace(/\\{\\{~&:\\:Parameter[0-9]+\\}\\}/, Loc.getMessage('BIZPROC_AUTOMATION_ASK_PARAMETER'))\n\t\t\t);\n\n\t\t\tif (labelText.includes('{=Document'))\n\t\t\t{\n\t\t\t\tthis.#document.getFields().forEach((field) => {\n\t\t\t\t\tlabelText = labelText.replace(field.SystemExpression, field.Name);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (labelText.includes('{=A'))\n\t\t\t{\n\t\t\t\tthis.#template.robots.forEach((robot) => {\n\t\t\t\t\trobot.getReturnFieldsDescription().forEach((field) => {\n\t\t\t\t\t\tif (field.Type === 'user')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabelText = labelText.replace(\n\t\t\t\t\t\t\t\tfield.SystemExpression,\n\t\t\t\t\t\t\t\t`${robot.getTitle()}: ${field.Name}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (labelText.includes('{=GlobalVar:') && Type.isArrayFilled(this.#template.globalVariables))\n\t\t\t{\n\t\t\t\tthis.#template.globalVariables.forEach((variable) => {\n\t\t\t\t\tlabelText = labelText.replace(variable.SystemExpression, variable.Name);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (labelText.includes('{=GlobalConst:') && Type.isArrayFilled(this.#template.globalConstants))\n\t\t\t{\n\t\t\t\tthis.#template.globalConstants.forEach((constant) => {\n\t\t\t\t\tlabelText = labelText.replace(constant.SystemExpression, constant.Name);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ttargetNode.textContent = labelText;\n\t\t\ttargetNode.setAttribute('title', labelText);\n\n\t\t\tif (this.#data.viewData.responsibleUrl)\n\t\t\t{\n\t\t\t\ttargetNode.href = this.#data.viewData.responsibleUrl;\n\t\t\t\tif (this.#isFrameMode)\n\t\t\t\t{\n\t\t\t\t\ttargetNode.setAttribute('target', '_blank');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.#viewMode.isEdit() && parseInt(this.#data.viewData.responsibleId, 10) > 0)\n\t\t\t{\n\t\t\t\ttargetNode.setAttribute('bx-tooltip-user-id', this.#data.viewData.responsibleId);\n\t\t\t}\n\t\t}\n\n\t\tlet delayLabel = this.getDelayInterval().format(\n\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_AT_ONCE'),\n\t\t\tthis.#document.getFields(),\n\t\t);\n\n\t\tif (this.isExecuteAfterPrevious())\n\t\t{\n\t\t\tdelayLabel = (delayLabel === Loc.getMessage('BIZPROC_AUTOMATION_CMP_AT_ONCE')) ? '' : `${delayLabel}, `;\n\t\t\tdelayLabel += Loc.getMessage('BIZPROC_AUTOMATION_CMP_AFTER_PREVIOUS');\n\t\t}\n\n\t\tif (this.getCondition().items.length > 0)\n\t\t{\n\t\t\tdelayLabel += `, ${Loc.getMessage('BIZPROC_AUTOMATION_CMP_BY_CONDITION')}`;\n\t\t}\n\n\t\tconst delayNode = Dom.create(\n\t\t\t(this.#canEditRobot()) ? 'a' : 'span',\n\t\t\t{\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: this.#canEditRobot() ? 'bizproc-automation-robot-link' : 'bizproc-automation-robot-text',\n\t\t\t\t\ttitle: delayLabel,\n\t\t\t\t},\n\t\t\t\ttext: delayLabel,\n\t\t\t},\n\t\t);\n\n\t\tconst statusNode = Tag.render`<div class=\"bizproc-automation-robot-information\"></div>`;\n\t\tthis.subscribeOnce('Robot:destroyed', () => {\n\t\t\tif (HelpHint.isBindedToNode(statusNode))\n\t\t\t{\n\t\t\t\tHelpHint.hideHint();\n\t\t\t}\n\t\t});\n\n\t\tswitch (this.getLogStatus())\n\t\t{\n\t\t\tcase TrackingStatus.RUNNING:\n\t\t\t\tif (this.#document.getCurrentStatusId() === this.#template.getStatusId())\n\t\t\t\t{\n\t\t\t\t\tstatusNode.classList.add('--loader');\n\n\t\t\t\t\tconst delayNotes = this.getDelayNotes();\n\t\t\t\t\tif (delayNotes.length)\n\t\t\t\t\t{\n\t\t\t\t\t\tstatusNode.setAttribute('data-text', delayNotes.join('\\n'));\n\t\t\t\t\t\tHelpHint.bindToNode(statusNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase TrackingStatus.COMPLETED:\n\t\t\tcase TrackingStatus.AUTOCOMPLETED:\n\t\t\t\tcontainerClass += ' --complete';\n\t\t\t\tstatusNode.classList.add('--complete');\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst errors = this.getLogErrors();\n\t\tif (errors.length > 0)\n\t\t{\n\t\t\tDom.addClass(statusNode, '--errors');\n\t\t\tstatusNode.setAttribute('data-text', errors.join('\\n'));\n\t\t\tHelpHint.bindToNode(statusNode);\n\t\t}\n\n\t\tlet titleClassName = 'bizproc-automation-robot-title-text';\n\t\tif (this.#canEditRobot() && this.canEdit())\n\t\t{\n\t\t\ttitleClassName += ' bizproc-automation-robot-title-text-editable';\n\t\t}\n\n\t\tconst { root: div, titleNode } = Tag.render`\n\t\t\t<div\n\t\t\t\tclass=\"${containerClass}\"\n\t\t\t\tdata-role=\"robot-container\"\n\t\t\t\tdata-type=\"item-robot\"\n\t\t\t\tdata-id=\"${Text.encode(this.getId())}\"\n\t\t\t>\n\t\t\t\t${this.#renderCheckbox()}\n\t\t\t\t${this.#renderDeactivatedInfoBlock()}\n\t\t\t\t${this.#renderInvalidInfoBlock()}\n\t\t\t\t<div class=\"${wrapperClass}\">\n\t\t\t\t\t<div class=\"bizproc-automation-robot-deadline\">${delayNode}</div>\n\t\t\t\t\t<div class=\"bizproc-automation-robot-title\">\n\t\t\t\t\t\t<div ref=\"titleNode\" class=\"${titleClassName}\" title=\"${Text.encode(this.getTitle())}\">\n\t\t\t\t\t\t\t${this.clipTitle(this.getTitle())}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"bizproc-automation-robot-settings\">\n\t\t\t\t\t\t<div class=\"bizproc-automation-robot-settings-title\">${targetLabel}:</div>\n\t\t\t\t\t\t${targetNode}\n\t\t\t\t\t</div>\n\t\t\t\t\t${statusNode}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t\tEvent.bind(titleNode, 'click', (event) => {\n\t\t\tif (this.#canEditRobot() && this.canEdit() && !this.#viewMode.isManage())\n\t\t\t{\n\t\t\t\tthis.onTitleEditClick(event);\n\t\t\t}\n\t\t});\n\n\t\tif (this.canEdit() && this.#canEditRobot())\n\t\t{\n\t\t\tthis.registerItem(div);\n\t\t}\n\n\t\tif (this.#viewMode.isEdit())\n\t\t{\n\t\t\tconst deleteBtn = Tag.render`<span class=\"bizproc-automation-robot-btn-delete\"></span>`;\n\t\t\tEvent.bind(deleteBtn, 'click', this.onDeleteButtonClick.bind(this, deleteBtn));\n\t\t\tDom.append(deleteBtn, div.lastChild);\n\n\t\t\tif (this.isInvalid())\n\t\t\t{\n\t\t\t\tconst deleteBottomButton = Tag.render`\n\t\t\t\t\t<div class=\"bizproc-automation-robot-btn-settings\">\n\t\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_DELETE_BUTTON_TITLE')}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(deleteBottomButton, 'click', this.onDeleteButtonClick.bind(this, deleteBottomButton));\n\t\t\t\tDom.append(deleteBottomButton, div);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tconst actionsButton = Tag.render`\n\t\t\t\t\t<div class=\"bizproc-automation-robot-btn-copy\">\n\t\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_ACTIONS_BUTTON_TEXT')}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(actionsButton, 'click', this.#onActionsButtonClick.bind(this, actionsButton));\n\t\t\t\tDom.append(actionsButton, div);\n\n\t\t\t\tconst settingsBtn = Tag.render`\n\t\t\t\t\t<div class=\"bizproc-automation-robot-btn-settings\">\n\t\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_EDIT')}\n\t\t\t\t\t</div>\n\t\t\t\t`;\n\t\t\t\tEvent.bind(div, 'click', this.onSettingsButtonClick.bind(this, div));\n\t\t\t\tDom.append(settingsBtn, div);\n\t\t\t}\n\t\t}\n\n\t\treturn div;\n\t}\n\n\t#renderCheckbox(): string | HTMLElement\n\t{\n\t\tif (this.isInvalid())\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-ctl ui-ctl-inline bizproc-automation-robot-container-checkbox\">\n\t\t\t\t<input class=\"ui-ctl-checkbox\" type=\"checkbox\" name=\"name\"/>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#canEditRobot(): boolean\n\t{\n\t\treturn this.#viewMode.isEdit() && !this.isInvalid();\n\t}\n\n\t#renderDeactivatedInfoBlock()\n\t{\n\t\tif (this.#data.Activated === true)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"bizproc-automation-robot-deactivated\">\n\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_DEACTIVATED_ROBOT_BLOCK_TITLE')}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderInvalidInfoBlock()\n\t{\n\t\tif (!this.isInvalid())\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"bizproc-automation-robot-invalid\">\n\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_INVALID_REST_ROBOT_BLOCK_TITLE')}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tonDeleteButtonClick(button, event)\n\t{\n\t\tevent.stopPropagation();\n\n\t\tif (!this.canEdit())\n\t\t{\n\t\t\tHelpHint.showNoPermissionsHint(button);\n\t\t}\n\t\telse if (!this.#viewMode.isManage())\n\t\t{\n\t\t\tDom.remove(this.#node);\n\t\t\tthis.#template.deleteRobot(this);\n\t\t}\n\t}\n\n\tonSettingsButtonClick(button)\n\t{\n\t\tif (!this.canEdit())\n\t\t{\n\t\t\tHelpHint.showNoPermissionsHint(button);\n\t\t}\n\t\telse if (!this.#viewMode.isManage())\n\t\t{\n\t\t\tthis.#template.openRobotSettingsDialog(this, this.#data.DialogContext ?? null);\n\t\t}\n\t}\n\n\t#onActionsButtonClick(button, event)\n\t{\n\t\tif (!this.canEdit())\n\t\t{\n\t\t\tevent.stopPropagation();\n\t\t\tHelpHint.showNoPermissionsHint(button);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.#viewMode.isManage())\n\t\t{\n\t\t\tevent.stopPropagation();\n\t\t\tconst buttonText = (\n\t\t\t\tthis.#data.Activated\n\t\t\t\t\t? Loc.getMessage('BIZPROC_AUTOMATION_ACTIONS_DEACTIVATE_BUTTON_TEXT')\n\t\t\t\t\t: Loc.getMessage('BIZPROC_AUTOMATION_ACTIONS_ACTIVATE_BUTTON_TEXT')\n\t\t\t);\n\n\t\t\tconst menu = new Menu({\n\t\t\t\tbindElement: button,\n\t\t\t\tautoHide: true,\n\t\t\t\tangle: {\n\t\t\t\t\toffset: (Dom.getPosition(button).width / 2) + 23,\n\t\t\t\t},\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_ACTIONS_COPY_BUTTON_TEXT'),\n\t\t\t\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_ACTIONS_COPY_BUTTON_TEXT'),\n\t\t\t\t\t\tonclick: (e: PointerEvent, menuItem: MenuItem) => {\n\t\t\t\t\t\t\tthis.onCopyButtonClick(menuItem, e);\n\t\t\t\t\t\t\tmenu.destroy();\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: buttonText,\n\t\t\t\t\t\ttitle: buttonText,\n\t\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\t\tthis.#onDeactivateButtonClick();\n\t\t\t\t\t\t\tmenu.destroy();\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t\tmenu.show();\n\t\t}\n\t}\n\n\tonCopyButtonClick(button, event)\n\t{\n\t\tevent.stopPropagation();\n\n\t\tif (!this.canEdit())\n\t\t{\n\t\t\tHelpHint.showNoPermissionsHint(button);\n\t\t}\n\t\telse if (!this.#viewMode.isManage())\n\t\t{\n\t\t\tconst copiedRobot = this.clone();\n\t\t\tconst robotTitle = copiedRobot.getProperty('Title');\n\t\t\tif (!Type.isNil(robotTitle))\n\t\t\t{\n\t\t\t\tconst newTitle = robotTitle + ' ' + ' ' + Loc.getMessage('BIZPROC_AUTOMATION_CMP_COPY_CAPTION');\n\t\t\t\tcopiedRobot.setProperty('Title', newTitle);\n\t\t\t\tcopiedRobot.reInit();\n\t\t\t}\n\n\t\t\tTemplate.copyRobotTo(this.#template, copiedRobot, this.#template.getNextRobot(this));\n\t\t}\n\t}\n\n\t#onDeactivateButtonClick()\n\t{\n\t\tthis.setActivated(!this.isActivated());\n\t\tthis.reInit();\n\t}\n\n\tonTitleEditClick(e)\n\t{\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tconst formName = 'bizproc_automation_robot_title_dialog';\n\n\t\tconst form = Dom.create('form', {\n\t\t\tprops: {\n\t\t\t\tname: formName\n\t\t\t},\n\t\t\tstyle: {\"min-width\": '540px'}\n\t\t});\n\n\t\tform.appendChild(Dom.create(\"span\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-autocomplete\" },\n\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_ROBOT_NAME') + ':'\n\t\t}));\n\n\t\tform.appendChild(Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings\" },\n\t\t\tchildren: [BX.create(\"input\", {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: 'bizproc-automation-popup-input',\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\tname: \"name\",\n\t\t\t\t\tvalue: this.getTitle()\n\t\t\t\t}\n\t\t\t})]\n\t\t}));\n\n\t\tthis.emit('Robot:title:editStart');\n\n\t\tconst self = this;\n\t\tconst popup = new BX.PopupWindow(Helper.generateUniqueId(), null, {\n\t\t\ttitleBar: Loc.getMessage('BIZPROC_AUTOMATION_CMP_ROBOT_NAME'),\n\t\t\tcontent: form,\n\t\t\tcloseIcon: true,\n\t\t\toffsetLeft: 0,\n\t\t\toffsetTop: 0,\n\t\t\tcloseByEsc: true,\n\t\t\tdraggable: {restrict: false},\n\t\t\toverlay: false,\n\t\t\tevents: {\n\t\t\t\tonPopupClose(popup)\n\t\t\t\t{\n\t\t\t\t\tpopup.destroy();\n\t\t\t\t\tself.emit('Robot:title:editCompleted');\n\t\t\t\t}\n\t\t\t},\n\t\t\tbuttons: [\n\t\t\t\tnew BX.PopupWindowButton({\n\t\t\t\t\ttext : Loc.getMessage('JS_CORE_WINDOW_SAVE'),\n\t\t\t\t\tclassName : \"popup-window-button-accept\",\n\t\t\t\t\tevents : {\n\t\t\t\t\t\tclick()\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst nameNode = form.elements.name;\n\t\t\t\t\t\t\tself.setProperty('Title', nameNode.value);\n\t\t\t\t\t\t\tself.reInit();\n\t\t\t\t\t\t\tself.#template.markModified();\n\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tnew BX.PopupWindowButtonLink({\n\t\t\t\t\ttext : Loc.getMessage('JS_CORE_WINDOW_CANCEL'),\n\t\t\t\t\tclassName : \"popup-window-button-link-cancel\",\n\t\t\t\t\tevents : {\n\t\t\t\t\t\tclick()\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.popupWindow.close()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t]\n\t\t});\n\n\t\tpopup.show();\n\t}\n\n\tonSearch(event)\n\t{\n\t\tif (!this.#node)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst query = event.getData().queryString;\n\t\tconst match = !query || this.getTitle().toLowerCase().indexOf(query) >= 0;\n\n\t\tif (match)\n\t\t{\n\t\t\tDom.removeClass(this.#node, '--search-mismatch');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.#node, '--search-mismatch');\n\t\t}\n\t}\n\n\tclipTitle(fullTitle: string)\n\t{\n\t\tlet title = Text.encode(fullTitle);\n\t\tconst arrTitle = title.split(\" \");\n\t\tconst lastWord = \"<span>\" + arrTitle[arrTitle.length - 1] + \"</span>\";\n\n\t\tarrTitle.splice(arrTitle.length - 1);\n\n\t\ttitle = arrTitle.join(\" \") + \" \" + lastWord;\n\n\t\treturn title;\n\t}\n\n\tupdateData(data)\n\t{\n\t\tif (Type.isPlainObject(data))\n\t\t{\n\t\t\tthis.#data = data;\n\t\t\tthis.#data.Activated = !Type.isNil(this.#data.Activated) ? Text.toBoolean(this.#data.Activated) : true;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthrow 'Invalid data';\n\t\t}\n\t}\n\n\tserialize()\n\t{\n\t\tconst result = BX.clone(this.#data);\n\t\tdelete result['viewData'];\n\t\tdelete result['DialogContext'];\n\t\tresult.Delay = this.#delay.serialize();\n\t\tresult.Condition = this.#condition.serialize();\n\t\tresult.Activated = result.Activated ? 'Y' : 'N';\n\n\t\treturn result;\n\t}\n\n\tgetDelayInterval(): DelayInterval\n\t{\n\t\treturn this.#delay;\n\t}\n\n\tsetDelayInterval(delay): Robot\n\t{\n\t\tthis.#delay = delay;\n\n\t\treturn this;\n\t}\n\n\tgetCondition(): ConditionGroup\n\t{\n\t\treturn this.#condition;\n\t}\n\n\tsetCondition(condition)\n\t{\n\t\tthis.#condition = condition;\n\n\t\treturn this;\n\t}\n\n\tsetExecuteAfterPrevious(flag)\n\t{\n\t\tthis.#data.ExecuteAfterPrevious = flag ? 1 : 0;\n\n\t\treturn this;\n\t}\n\n\tisExecuteAfterPrevious()\n\t{\n\t\treturn (this.#data.ExecuteAfterPrevious === 1 || this.#data.ExecuteAfterPrevious === '1')\n\t}\n\n\tregisterItem(object)\n\t{\n\t\tif (Type.isNil(object[\"__bxddid\"]))\n\t\t{\n\t\t\tobject.onbxdragstart = BX.proxy(this.dragStart, this);\n\t\t\tobject.onbxdrag = BX.proxy(this.dragMove, this);\n\t\t\tobject.onbxdragstop = BX.proxy(this.dragStop, this);\n\t\t\tobject.onbxdraghover = BX.proxy(this.dragOver, this);\n\t\t\tjsDD.registerObject(object);\n\t\t\tjsDD.registerDest(object, 1);\n\t\t}\n\t}\n\n\tunregisterItem(object)\n\t{\n\t\tobject.onbxdragstart = undefined;\n\t\tobject.onbxdrag = undefined;\n\t\tobject.onbxdragstop = undefined;\n\t\tobject.onbxdraghover = undefined;\n\t\tjsDD.unregisterObject(object);\n\t\tjsDD.unregisterDest(object);\n\t}\n\n\tdragStart()\n\t{\n\t\tthis.draggableItem = BX.proxy_context;\n\n\t\tif (!this.draggableItem)\n\t\t{\n\t\t\tjsDD.stopCurrentDrag();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.stub)\n\t\t{\n\t\t\tconst itemWidth = this.draggableItem.offsetWidth;\n\t\t\tthis.stub = this.draggableItem.cloneNode(true);\n\t\t\tthis.stub.style.position = \"absolute\";\n\t\t\tthis.stub.classList.add(\"bizproc-automation-robot-container-drag\");\n\t\t\tthis.stub.style.width = itemWidth + \"px\";\n\t\t\tdocument.body.appendChild(this.stub);\n\t\t}\n\t}\n\n\tdragMove(x,y)\n\t{\n\t\tthis.stub.style.left = x + \"px\";\n\t\tthis.stub.style.top = y + \"px\";\n\t}\n\n\tdragOver(destination, x, y)\n\t{\n\t\tif (this.droppableItem)\n\t\t{\n\t\t\tthis.droppableItem.classList.remove(\"bizproc-automation-robot-container-pre\");\n\t\t}\n\n\t\tif (this.droppableColumn)\n\t\t{\n\t\t\tthis.droppableColumn.classList.remove(\"bizproc-automation-robot-list-pre\");\n\t\t}\n\n\t\tconst type = destination.getAttribute(\"data-type\");\n\n\t\tif (type === \"item-robot\")\n\t\t{\n\t\t\tthis.droppableItem = destination;\n\t\t\tthis.droppableColumn = null;\n\t\t}\n\n\t\tif (type === \"column-robot\")\n\t\t{\n\t\t\tthis.droppableColumn = destination.querySelector('[data-role=\"robot-list\"]');\n\t\t\tthis.droppableItem = null;\n\t\t}\n\n\t\tif (this.droppableItem)\n\t\t{\n\t\t\tthis.droppableItem.classList.add(\"bizproc-automation-robot-container-pre\");\n\t\t}\n\n\t\tif (this.droppableColumn)\n\t\t{\n\t\t\tthis.droppableColumn.classList.add(\"bizproc-automation-robot-list-pre\");\n\t\t}\n\t}\n\n\tdragStop(x, y, event)\n\t{\n\t\tevent = event || window.event;\n\t\tconst isCopy = event && (event.ctrlKey || event.metaKey);\n\n\t\tif (this.draggableItem)\n\t\t{\n\t\t\tif (this.droppableItem)\n\t\t\t{\n\t\t\t\tthis.droppableItem.classList.remove(\"bizproc-automation-robot-container-pre\");\n\t\t\t\tthis.emit('Robot:manage', {\n\t\t\t\t\ttemplateNode: this.droppableItem.parentNode,\n\t\t\t\t\tisCopy,\n\t\t\t\t\tdroppableItem: this.droppableItem,\n\t\t\t\t\trobot: this,\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if (this.droppableColumn)\n\t\t\t{\n\t\t\t\tthis.droppableColumn.classList.remove(\"bizproc-automation-robot-list-pre\");\n\t\t\t\tthis.emit('Robot:manage', {\n\t\t\t\t\ttemplateNode: this.droppableColumn,\n\t\t\t\t\tisCopy,\n\t\t\t\t\trobot: this,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.stub.parentNode.removeChild(this.stub);\n\t\tthis.stub = null;\n\t\tthis.draggableItem = null;\n\t\tthis.droppableItem = null;\n\t}\n\n\tmoveTo(template, beforeRobot)\n\t{\n\t\tDom.remove(this.#node);\n\t\tthis.#template.deleteRobot(this);\n\t\tthis.#template = template;\n\n\t\tthis.#template.insertRobot(this, beforeRobot);\n\t\tthis.#node = this.createNode();\n\t\tthis.#template.insertRobotNode(this.#node, beforeRobot ? beforeRobot.node : null);\n\t}\n\n\tcopyTo(template, beforeRobot)\n\t{\n\t\tconst robot = new Robot({\n\t\t\tdocument: this.#document,\n\t\t\ttemplate,\n\t\t\tisFrameMode: this.#isFrameMode,\n\t\t\ttracker: this.#tracker,\n\t\t});\n\n\t\tconst robotData = this.serialize();\n\t\tdelete robotData['Name'];\n\t\tdelete robotData['DelayName'];\n\n\t\trobot.init(robotData, this.#viewMode);\n\n\t\ttemplate.insertRobot(robot, beforeRobot);\n\t\ttemplate.insertRobotNode(robot.node, beforeRobot ? beforeRobot.node : null);\n\n\t\treturn robot;\n\t}\n\n\tgetTitle()\n\t{\n\t\treturn this.getProperty('Title') || this.getDescriptionTitle();\n\t}\n\n\tgetDescriptionTitle()\n\t{\n\t\tlet name = 'untitled';\n\t\tconst description = this.template?.getRobotDescription(this.#data['Type']) ?? {};\n\t\tif (description['NAME'])\n\t\t{\n\t\t\tname = description['NAME'];\n\t\t}\n\t\tif (description['ROBOT_SETTINGS'] && description['ROBOT_SETTINGS']['TITLE'])\n\t\t{\n\t\t\tname = description['ROBOT_SETTINGS']['TITLE'];\n\t\t}\n\n\t\treturn name;\n\t}\n\n\thasTitle(): boolean\n\t{\n\t\treturn this.getTitle() !== 'untitled';\n\t}\n\n\thasReturnFields(): boolean\n\t{\n\t\tconst description = this.template.getRobotDescription(this.#data['Type']);\n\t\tconst props = this.#data['Properties'];\n\n\t\tif (!Type.isObject(description))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst hasReturnProperties = () => (\n\t\t\tType.isObject(description['RETURN'])\n\t\t\t&& Type.isArrayFilled(Object.values(description['RETURN']))\n\t\t);\n\n\t\tconst hasAdditionalResultProperties = () => (\n\t\t\tType.isArray(description['ADDITIONAL_RESULT'])\n\t\t\t&& description['ADDITIONAL_RESULT'].some(addProperty => Object.values(props[addProperty] ?? []).length > 0)\n\t\t);\n\n\t\treturn hasReturnProperties() || hasAdditionalResultProperties();\n\t}\n\n\tgetReturnFieldsDescription()\n\t{\n\t\tconst fields = [];\n\t\tconst description = this.template.getRobotDescription(this.#data['Type']);\n\n\t\tif (description && description['RETURN'])\n\t\t{\n\t\t\tfor (const fieldId in description['RETURN'])\n\t\t\t{\n\t\t\t\tif (description['RETURN'].hasOwnProperty(fieldId))\n\t\t\t\t{\n\t\t\t\t\tconst field = description['RETURN'][fieldId];\n\t\t\t\t\tfields.push({\n\t\t\t\t\t\tId: fieldId,\n\t\t\t\t\t\tObjectId: this.getId(),\n\t\t\t\t\t\tObjectName: this.getTitle(),\n\t\t\t\t\t\tName: field['NAME'],\n\t\t\t\t\t\tType: field['TYPE'],\n\t\t\t\t\t\tOptions: field['OPTIONS'] || null,\n\t\t\t\t\t\tExpression: '{{~'+this.getId()+':'+fieldId+' # '+this.getTitle()+': '+field['NAME']+'}}',\n\t\t\t\t\t\tSystemExpression: '{='+this.getId()+':'+fieldId+'}'\n\t\t\t\t\t});\n\n\t\t\t\t\tif (!this.appendPropertyMods)\n\t\t\t\t\t{\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t//generate printable version\n\t\t\t\t\tif (\n\t\t\t\t\t\tfield['TYPE'] === 'user'\n\t\t\t\t\t\t||\n\t\t\t\t\t\tfield['TYPE'] === 'bool'\n\t\t\t\t\t\t||\n\t\t\t\t\t\tfield['TYPE'] === 'file'\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst printableTag = (field['TYPE'] === 'user') ? 'friendly' : 'printable';\n\t\t\t\t\t\tfields.push({\n\t\t\t\t\t\t\tId: fieldId + '_printable',\n\t\t\t\t\t\t\tObjectId: this.getId(),\n\t\t\t\t\t\t\tObjectName: this.getTitle(),\n\t\t\t\t\t\t\tName: field['NAME'] + ' ' + Loc.getMessage('BIZPROC_AUTOMATION_CMP_MOD_PRINTABLE_PREFIX'),\n\t\t\t\t\t\t\tType: 'string',\n\t\t\t\t\t\t\tExpression: `{{~${this.getId()}:${fieldId} > ${printableTag} # ${this.getTitle()}: ${field['NAME']}}}`,\n\t\t\t\t\t\t\tSystemExpression: `{=${this.getId()}:${fieldId}>${printableTag}}`,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (description && Type.isArray(description['ADDITIONAL_RESULT']))\n\t\t{\n\t\t\tconst props = this.#data['Properties'];\n\n\t\t\tdescription['ADDITIONAL_RESULT'].forEach((addProperty) => {\n\t\t\t\tif (props[addProperty])\n\t\t\t\t{\n\t\t\t\t\tfor (const fieldId in props[addProperty])\n\t\t\t\t\t{\n\t\t\t\t\t\tif (props[addProperty].hasOwnProperty(fieldId))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst field = props[addProperty][fieldId];\n\t\t\t\t\t\t\tfields.push({\n\t\t\t\t\t\t\t\tId: fieldId,\n\t\t\t\t\t\t\t\tObjectId: this.getId(),\n\t\t\t\t\t\t\t\tObjectName: this.getTitle(),\n\t\t\t\t\t\t\t\tName: field['Name'],\n\t\t\t\t\t\t\t\tType: field['Type'],\n\t\t\t\t\t\t\t\tOptions: field['Options'] || null,\n\t\t\t\t\t\t\t\tExpression: `{{~${this.getId()}:${fieldId} # ${this.getTitle()}: ${field['Name']}}}`,\n\t\t\t\t\t\t\t\tSystemExpression: '{=' + this.getId() + ':' + fieldId + '}',\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t//generate printable version\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tfield['Type'] === 'user'\n\t\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t\tfield['Type'] === 'bool'\n\t\t\t\t\t\t\t\t||\n\t\t\t\t\t\t\t\tfield['Type'] === 'file'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconst printableTag = (field['Type'] === 'user') ? 'friendly' : 'printable';\n\t\t\t\t\t\t\t\tconst expression = `{{~${this.getId()}:${fieldId} > ${printableTag} # ${this.getTitle()}: ${field['Name']}}}`;\n\t\t\t\t\t\t\t\tfields.push({\n\t\t\t\t\t\t\t\t\tId: fieldId + '_printable',\n\t\t\t\t\t\t\t\t\tObjectId: this.getId(),\n\t\t\t\t\t\t\t\t\tObjectName: this.getTitle(),\n\t\t\t\t\t\t\t\t\tName: field['Name'] + ' ' + Loc.getMessage('BIZPROC_AUTOMATION_CMP_MOD_PRINTABLE_PREFIX'),\n\t\t\t\t\t\t\t\t\tType: 'string',\n\t\t\t\t\t\t\t\t\tExpression: expression,\n\t\t\t\t\t\t\t\t\tSystemExpression: '{=' + this.getId() + ':' + fieldId + '>' + printableTag + '}',\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn fields;\n\t}\n\n\tgetReturnProperty(id): Array<Object>\n\t{\n\t\tconst fields = this.getReturnFieldsDescription();\n\t\tfor (let i = 0; i < fields.length; ++i)\n\t\t{\n\t\t\tif (fields[i]['Id'] === id)\n\t\t\t{\n\t\t\t\treturn fields[i];\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tcollectUsages()\n\t{\n\t\tconst properties = this.getProperties();\n\t\tconst usages = {\n\t\t\tDocument: new Set(),\n\t\t\tConstant: new Set(),\n\t\t\tVariable: new Set(),\n\t\t\tParameter: new Set(),\n\t\t\tGlobalConstant: new Set(),\n\t\t\tGlobalVariable: new Set(),\n\t\t\tActivity: new Set()\n\t\t};\n\n\t\tObject.values(properties).forEach(property => this.collectExpressions(property, usages));\n\n\t\tconst conditions = this.getCondition().serialize();\n\t\tconditions.items.forEach(item => this.collectParsedExpressions(item[0], usages));\n\n\t\treturn usages;\n\t}\n\n\tcollectExpressions(value, usages)\n\t{\n\t\tif (Type.isArray(value))\n\t\t{\n\t\t\tvalue.forEach(v => this.collectExpressions(v, usages));\n\t\t}\n\t\telse if (Type.isPlainObject(value))\n\t\t{\n\t\t\tObject.values(value).forEach(value => this.collectExpressions(value, usages));\n\t\t}\n\t\telse if (Type.isStringFilled(value))\n\t\t{\n\t\t\tlet found;\n\t\t\tconst systemExpressionRegExp = new RegExp(this.SYSTEM_EXPRESSION_PATTERN, 'ig');\n\t\t\twhile ((found = systemExpressionRegExp.exec(value)) !== null)\n\t\t\t{\n\t\t\t\tthis.collectParsedExpressions(found.groups, usages);\n\t\t\t}\n\t\t}\n\t}\n\n\tcollectParsedExpressions(parsedUsage, usages)\n\t{\n\t\tif (Type.isPlainObject(parsedUsage) && parsedUsage['object'] && parsedUsage['field'])\n\t\t{\n\t\t\tswitch (parsedUsage['object'])\n\t\t\t{\n\t\t\t\tcase 'Document':\n\t\t\t\t\tusages.Document.add(parsedUsage['field']);\n\t\t\t\t\treturn;\n\n\t\t\t\tcase 'Constant':\n\t\t\t\t\tusages.Constant.add(parsedUsage['field']);\n\t\t\t\t\treturn;\n\n\t\t\t\tcase 'Variable':\n\t\t\t\t\tusages.Variable.add(parsedUsage['field']);\n\t\t\t\t\treturn;\n\n\t\t\t\tcase 'Template':\n\t\t\t\t\tusages.Parameter.add(parsedUsage['field']);\n\t\t\t\t\treturn;\n\n\t\t\t\tcase 'GlobalConst':\n\t\t\t\t\tusages.GlobalConstant.add(parsedUsage['field']);\n\t\t\t\t\treturn;\n\n\t\t\t\tcase 'GlobalVar':\n\t\t\t\t\tusages.GlobalVariable.add(parsedUsage['field']);\n\t\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst activityRegExp = new RegExp(/^A[_0-9]+$/, 'ig');\n\t\t\tif (activityRegExp.exec(parsedUsage['object']))\n\t\t\t{\n\t\t\t\tusages.Activity.add([parsedUsage['object'], parsedUsage['field']]);\n\t\t\t}\n\t\t}\n\t}\n\n\thasBrokenLink(): boolean\n\t{\n\t\treturn this.getBrokenLinks().length > 0;\n\t}\n\n\tgetBrokenLinks(): []\n\t{\n\t\tconst usages = Runtime.clone(this.collectUsages());\n\n\t\tif (!this.template)\n\t\t{\n\t\t\treturn [];\n\t\t}\n\n\t\tconst objectsData = {\n\t\t\tDocument: this.#document.getFields(),\n\t\t\tConstant: this.#template.getConstants(),\n\t\t\tVariable: this.#template.getVariables(),\n\t\t\tGlobalConstant: this.#template.globalConstants,\n\t\t\tGlobalVariable: this.#template.globalVariables,\n\t\t\tParameter: this.#template.getParameters(),\n\t\t\tActivity: this.#template.getSerializedRobots()\n\t\t};\n\n\t\tconst brokenLinks = [];\n\t\tfor (const object in usages)\n\t\t{\n\t\t\tif (usages[object].size > 0)\n\t\t\t{\n\t\t\t\tconst source = new Set();\n\n\t\t\t\tfor (const key in objectsData[object])\n\t\t\t\t{\n\t\t\t\t\tif (objectsData[object][key]['Id'])\n\t\t\t\t\t{\n\t\t\t\t\t\tsource.add(objectsData[object][key]['Id']);\n\t\t\t\t\t}\n\t\t\t\t\telse if (objectsData[object][key]['Name'])\n\t\t\t\t\t{\n\t\t\t\t\t\tsource.add(objectsData[object][key]['Name']);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const value of usages[object].values())\n\t\t\t\t{\n\t\t\t\t\tlet searchInSource = value;\n\t\t\t\t\tlet id = value;\n\n\t\t\t\t\tif (Type.isArray(searchInSource))\n\t\t\t\t\t{\n\t\t\t\t\t\tsearchInSource = value[0];\n\t\t\t\t\t\tid = value[1];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!source.has(searchInSource))\n\t\t\t\t\t{\n\t\t\t\t\t\tif (object === 'Activity')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbrokenLinks.push('{=' + searchInSource + ':' + id + '}');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlet brokenLinkObject = object;\n\n\t\t\t\t\t\t\tif (brokenLinkObject === 'GlobalVariable')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbrokenLinkObject = 'GlobalVar';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (brokenLinkObject === 'GlobalConstant')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbrokenLinkObject = 'GlobalConst';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (brokenLinkObject === 'Parameter')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbrokenLinkObject = 'Template';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbrokenLinks.push('{=' + brokenLinkObject + ':' + searchInSource + '}');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (object === 'Activity')\n\t\t\t\t\t{\n\t\t\t\t\t\tconst robot = this.#template.getRobotById(searchInSource);\n\t\t\t\t\t\tif (!robot.getReturnProperty(id))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbrokenLinks.push('{=' + searchInSource + ':' + id + '}');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn brokenLinks;\n\t}\n\n\tonBeforeSaveRobotSettings(): Object\n\t{\n\t\tconst data = this.#customOnBeforeSaveRobotSettings();\n\n\t\treturn Type.isPlainObject(data) ? data : {};\n\t}\n\n\tsetOnBeforeSaveRobotSettings(callback: Function): void\n\t{\n\t\tif (Type.isFunction(callback))\n\t\t{\n\t\t\tthis.#customOnBeforeSaveRobotSettings = callback;\n\t\t}\n\t}\n}\n","import { Type, Runtime } from 'main.core';\n\nexport class UserOptions\n{\n\t#options: Object<string, any>;\n\n\tconstructor(options: Object<string, any>)\n\t{\n\t\tthis.#options = options;\n\t}\n\n\tclone(): this\n\t{\n\t\treturn new UserOptions(Runtime.clone(this.#options));\n\t}\n\n\tset(category: string, key: string, value: any): UserOptions\n\t{\n\t\tif (!Type.isPlainObject(this.#options[category]))\n\t\t{\n\t\t\tthis.#options[category] = {};\n\t\t}\n\t\tconst storedValue = this.#options[category][key];\n\n\t\tif (storedValue !== value)\n\t\t{\n\t\t\tBX.userOptions.save(\n\t\t\t\t'bizproc.automation',\n\t\t\t\tcategory,\n\t\t\t\tkey,\n\t\t\t\tvalue,\n\t\t\t\tfalse,\n\t\t\t);\n\n\t\t\tthis.#options[category][key] = value;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tget(category: string, key: string, defaultValue: any): any\n\t{\n\t\tlet result = defaultValue;\n\t\tif (this.has(category, key))\n\t\t{\n\t\t\tresult = this.#options[category][key];\n\t\t}\n\n\t\treturn result;\n\t}\n\n\thas(category: string, key: string): boolean\n\t{\n\t\treturn Type.isPlainObject(this.#options[category]) && Object.keys(this.#options[category]).includes(key);\n\t}\n}\n","import { Dom, Event, Loc, Tag, Text, Type } from 'main.core';\nimport { Popup } from 'main.popup';\nimport { Helper } from 'bizproc.automation';\nimport { Button } from 'ui.buttons';\n\nconst renderAfterPreviousImageBlock = () => {\n\treturn Tag.render`\n\t\t<svg \n\t\t\tclass=\"bizproc-automation_execution-queue_in-turn\"\n\t\t\twidth=\"97\"\n\t\t\theight=\"121\"\n\t\t\tviewBox=\"0 0 97 121\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\n\t\t>\n\t\t\t<rect width=\"97\" height=\"121\" fill=\"url(#pattern0)\"/>\n\t\t\t<path\n\t\t\t\tfill-rule=\"evenodd\"\n\t\t\t\tclip-rule=\"evenodd\"\n\t\t\t\td=\"M12.25 27C11.5596 27 11 26.4404 11 25.75V18.25C11 17.5596 11.5596 17 12.25 17H15.6875H16H79.75H81.3125H82.7275C83.2009 17 83.6338 17.2675 83.8455 17.691L86 22L83.8455 26.309C83.6338 26.7325 83.2009 27 82.7275 27H81.3125H79.75H16H15.6875H12.25Z\"\n\t\t\t\tfill=\"#DFE0E3\"\n\t\t\t/>\n\t\t\t<path\n\t\t\t\tfill-rule=\"evenodd\"\n\t\t\t\tclip-rule=\"evenodd\"\n\t\t\t\td=\"M12.25 27C11.5596 27 11 26.4404 11 25.75V18.25C11 17.5596 11.5596 17 12.25 17H15.6875H16H79.75H81.3125H82.7275C83.2009 17 83.6338 17.2675 83.8455 17.691L86 22L83.8455 26.309C83.6338 26.7325 83.2009 27 82.7275 27H81.3125H79.75H16H15.6875H12.25Z\"\n\t\t\t\tfill=\"#55D0E0\"\n\t\t\t/>\n\t\t\t<g filter=\"url(#filter0_d_272_90944)\" class=\"bizproc-automation_execution-queue_transform-element --one\">\n\t\t\t\t<rect\n\t\t\t\t\tx=\"11\"\n\t\t\t\t\ty=\"32\"\n\t\t\t\t\twidth=\"75\"\n\t\t\t\t\theight=\"34\"\n\t\t\t\t\trx=\"4\"\n\t\t\t\t\tfill=\"white\"\n\t\t\t\t\tfill-opacity=\"0.9\"\n\t\t\t\t\tshape-rendering=\"crispEdges\"\n\t\t\t\t/>\n\t\t\t\t<path\n\t\t\t\t\td=\"M11 56H86V62C86 64.2091 84.2091 66 82 66H15C12.7909 66 11 64.2091 11 62V56Z\"\n\t\t\t\t\tfill=\"#C5F8FF\"\n\t\t\t\t/>\n\t\t\t\t<rect x=\"22\" y=\"37\" width=\"21\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"15\" y=\"45\" width=\"54\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"72\" y=\"45\" width=\"8\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"55\" y=\"59\" width=\"28\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<g class=\"bizproc-automation_execution-queue_checked --one\">\n\t\t\t\t\t<circle cx=\"15\" cy=\"38\" r=\"8\" fill=\"#739F00\"/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M11.7084 37.089L15.4796 40.8602L13.9711 42.3687L10.1999 38.5975L11.7084 37.089Z\"\n\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M20.0051 36.3347L13.9711 42.3687L12.4627 40.8602L18.4966 34.8262L20.0051 36.3347Z\"\n\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t/>\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t\t<g filter=\"url(#filter1_d_272_90944)\" class=\"bizproc-automation_execution-queue_transform-element --two\">\n\t\t\t\t<rect\n\t\t\t\t\tx=\"11\"\n\t\t\t\t\ty=\"71\"\n\t\t\t\t\twidth=\"75\"\n\t\t\t\t\theight=\"34\"\n\t\t\t\t\trx=\"4\"\n\t\t\t\t\tfill=\"white\"\n\t\t\t\t\tfill-opacity=\"0.9\"\n\t\t\t\t\tshape-rendering=\"crispEdges\"\n\t\t\t\t/>\n\t\t\t\t<path\n\t\t\t\t\td=\"M11 95H86V101C86 103.209 84.2091 105 82 105H15C12.7909 105 11 103.209 11 101V95Z\"\n\t\t\t\t\tfill=\"#C5F8FF\"\n\t\t\t\t/>\n\t\t\t\t<rect x=\"15\" y=\"84\" width=\"54\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"72\" y=\"84\" width=\"8\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"55\" y=\"98\" width=\"28\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"22\" y=\"76\" width=\"21\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<g class=\"bizproc-automation_execution-queue_checked --two\">\n\t\t\t\t\t<circle cx=\"15\" cy=\"77\" r=\"8\" fill=\"#739F00\"/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M11.7084 76.089L15.4796 79.8602L13.9711 81.3687L10.1999 77.5975L11.7084 76.089Z\"\n\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M20.0051 75.3347L13.9711 81.3687L12.4627 79.8602L18.4966 73.8262L20.0051 75.3347Z\"\n\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t/>\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t</svg>\n\t`;\n};\n\nconst renderParallelImageBlock = () => {\n\treturn Tag.render`\n\t\t<svg\n\t\t\tclass=\"bizproc-automation_execution-queue_simultaneously\"\n\t\t\twidth=\"97\"\n\t\t\theight=\"121\"\n\t\t\tviewBox=\"0 0 97 121\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\n\t\t>\n\t\t\t<rect width=\"97\" height=\"121\" fill=\"url(#pattern0)\"/>\n\t\t\t<path\n\t\t\t\tfill-rule=\"evenodd\"\n\t\t\t\tclip-rule=\"evenodd\"\n\t\t\t\td=\"M12.25 27C11.5596 27 11 26.4404 11 25.75V18.25C11 17.5596 11.5596 17 12.25 17H15.6875H16H79.75H81.3125H82.7275C83.2009 17 83.6338 17.2675 83.8455 17.691L86 22L83.8455 26.309C83.6338 26.7325 83.2009 27 82.7275 27H81.3125H79.75H16H15.6875H12.25Z\"\n\t\t\t\tfill=\"#DFE0E3\"\n\t\t\t/>\n\t\t\t<path\n\t\t\t\tfill-rule=\"evenodd\"\n\t\t\t\tclip-rule=\"evenodd\"\n\t\t\t\td=\"M12.25 27C11.5596 27 11 26.4404 11 25.75V18.25C11 17.5596 11.5596 17 12.25 17H15.6875H16H79.75H81.3125H82.7275C83.2009 17 83.6338 17.2675 83.8455 17.691L86 22L83.8455 26.309C83.6338 26.7325 83.2009 27 82.7275 27H81.3125H79.75H16H15.6875H12.25Z\"\n\t\t\t\tfill=\"#55D0E0\"\n\t\t\t/>\n\t\t\t<g\n\t\t\t\tfilter=\"url(#filter0_d_272_90944)\"\n\t\t\t\tclass=\"bizproc-automation_execution-queue_transform-element\"\n\t\t\t>\n\t\t\t\t<rect\n\t\t\t\t\tx=\"11\"\n\t\t\t\t\ty=\"32\"\n\t\t\t\t\twidth=\"75\"\n\t\t\t\t\theight=\"34\"\n\t\t\t\t\trx=\"4\"\n\t\t\t\t\tfill=\"white\"\n\t\t\t\t\tfill-opacity=\"0.9\"\n\t\t\t\t\tshape-rendering=\"crispEdges\"\n\t\t\t\t/>\n\t\t\t\t<path\n\t\t\t\t\td=\"M11 56H86V62C86 64.2091 84.2091 66 82 66H15C12.7909 66 11 64.2091 11 62V56Z\"\n\t\t\t\t\tfill=\"#C5F8FF\"\n\t\t\t\t/>\n\t\t\t\t<rect x=\"22\" y=\"37\" width=\"21\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"15\" y=\"45\" width=\"54\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"72\" y=\"45\" width=\"8\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"55\" y=\"59\" width=\"28\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<g class=\"bizproc-automation_execution-queue_checked\">\n\t\t\t\t\t<circle cx=\"15\" cy=\"38\" r=\"8\" fill=\"#739F00\"/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M11.7084 37.089L15.4796 40.8602L13.9711 42.3687L10.1999 38.5975L11.7084 37.089Z\"\n\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M20.0051 36.3347L13.9711 42.3687L12.4627 40.8602L18.4966 34.8262L20.0051 36.3347Z\"\n\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t/>\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t\t<g\n\t\t\t\tfilter=\"url(#filter1_d_272_90944)\"\n\t\t\t\tclass=\"bizproc-automation_execution-queue_transform-element\"\n\t\t\t>\n\t\t\t\t<rect\n\t\t\t\t\tx=\"11\"\n\t\t\t\t\ty=\"71\"\n\t\t\t\t\twidth=\"75\"\n\t\t\t\t\theight=\"34\"\n\t\t\t\t\trx=\"4\"\n\t\t\t\t\tfill=\"white\"\n\t\t\t\t\tfill-opacity=\"0.9\"\n\t\t\t\t\tshape-rendering=\"crispEdges\"\n\t\t\t\t/>\n\t\t\t\t<path\n\t\t\t\t\td=\"M11 95H86V101C86 103.209 84.2091 105 82 105H15C12.7909 105 11 103.209 11 101V95Z\"\n\t\t\t\t\tfill=\"#C5F8FF\"\n\t\t\t\t/>\n\t\t\t\t<rect x=\"15\" y=\"84\" width=\"54\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"72\" y=\"84\" width=\"8\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"55\" y=\"98\" width=\"28\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<rect x=\"22\" y=\"76\" width=\"21\" height=\"4\" rx=\"2\" fill=\"#999999\" fill-opacity=\"0.33\"/>\n\t\t\t\t<g class=\"bizproc-automation_execution-queue_checked\">\n\t\t\t\t\t<circle cx=\"15\" cy=\"77\" r=\"8\" fill=\"#739F00\"/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M11.7084 76.089L15.4796 79.8602L13.9711 81.3687L10.1999 77.5975L11.7084 76.089Z\"\n\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M20.0051 75.3347L13.9711 81.3687L12.4627 79.8602L18.4966 73.8262L20.0051 75.3347Z\"\n\t\t\t\t\t\tfill=\"white\"\n\t\t\t\t\t/>\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t</svg>\n\t`;\n};\n\nconst renderRow = (\n\tisActive: boolean,\n\tuid: string,\n\tcontent: {\n\t\ttitle: string,\n\t\tdescription: string,\n\t\timageRenderFunction: () => Element,\n\t\tvalue: string,\n\t},\n) => {\n\tconst { root, radio } = Tag.render`\n\t\t<label\n\t\t\tclass=\"bizproc-automation-popup-select__wrapper-flex ${isActive ? '--active' : ''} ui-ctl ui-ctl-radio ui-ctl-w100\"\n\t\t\tfor=\"${uid}\"\n\t\t\tdata-role=\"execution-queue-row\"\n\t\t>\n\t\t\t<div class=\"bizproc-automation-popup-select__wrapper-info-block\">\n\t\t\t\t<div class=\"bizproc-automation-popup-select__header-input\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tref=\"radio\"\n\t\t\t\t\t\tclass=\"ui-ctl-element\"\n\t\t\t\t\t\tid=\"${uid}\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tvalue=\"${Text.encode(content.value)}\"\n\t\t\t\t\t\tname=\"execution\"\n\t\t\t\t\t/>\n\t\t\t\t\t<span class=\"bizproc-automation-popup-settings__input-title\">${Text.encode(content.title)}</span>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bizproc-automation-popup-settings__description\">${Text.encode(content.description)}</div>\n\t\t\t</div>\n\t\t\t<div class=\"bizproc-automation-popup-settings__image-block\">\n\t\t\t\t${content.imageRenderFunction()}\n\t\t\t</div>\n\t\t</label>\n\t`;\n\tEvent.bind(radio, 'change', () => {\n\t\tdocument.querySelectorAll('[data-role=\"execution-queue-row\"]').forEach((node) => {\n\t\t\tDom.removeClass(node, '--active');\n\t\t});\n\t\tDom.addClass(root, '--active');\n\t});\n\n\tif (isActive)\n\t{\n\t\tDom.attr(radio, 'checked', 'checked');\n\t}\n\n\treturn root;\n};\n\ntype ExecutionQueuePopupSettings = {\n\tbindElement: HTMLElement,\n\tcurrentValue: '1' | '0',\n\tonSubmitButtonClick?: (form: FormData) => void,\n};\n\nconst showExecutionQueuePopup = (\n\tsettings: ExecutionQueuePopupSettings,\n) => {\n\tconst afterPreviousContent = {\n\t\ttitle: Loc.getMessage('BIZPROC_JS_AUTOMATION_EXECUTION_QUEUE_AFTER_PREVIOUS_TITLE'),\n\t\tdescription: Loc.getMessage('BIZPROC_JS_AUTOMATION_EXECUTION_QUEUE_AFTER_PREVIOUS_DESCRIPTION'),\n\t\timageRenderFunction: renderAfterPreviousImageBlock,\n\t\tvalue: 'afterPrevious',\n\t};\n\tconst parallelContent = {\n\t\ttitle: Loc.getMessage('BIZPROC_JS_AUTOMATION_EXECUTION_QUEUE_PARALLEL_TITLE'),\n\t\tdescription: Loc.getMessage('BIZPROC_JS_AUTOMATION_EXECUTION_QUEUE_PARALLEL_DESCRIPTION'),\n\t\timageRenderFunction: renderParallelImageBlock,\n\t\tvalue: 'parallel',\n\t};\n\n\tconst content = Tag.render`\n\t\t<form class=\"bizproc-automation-popup-select-block\">\n\t\t\t<div class=\"bizproc-automation-popup-select-item\">\n\t\t\t\t${renderRow(settings.currentValue === '1', 'bizproc-automation-cmp1', afterPreviousContent)}\n\t\t\t</div>\n\t\t\t<div class=\"bizproc-automation-popup-select-item\">\n\t\t\t\t${renderRow(settings.currentValue !== '1', 'bizproc-automation-cmp2', parallelContent)}\n\t\t\t</div>\n\t\t</form>\n\t`;\n\n\tconst popup = new Popup({\n\t\tid: Helper.generateUniqueId(),\n\t\tbindElement: settings.bindElement,\n\t\tcontent,\n\t\tcloseByEsc: true,\n\t\tbuttons: [\n\t\t\tnew Button({\n\t\t\t\tcolor: Button.Color.PRIMARY,\n\t\t\t\ttext: Loc.getMessage('BIZPROC_JS_AUTOMATION_CHOOSE_BUTTON_CAPS'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tif (Type.isFunction(settings.onSubmitButtonClick))\n\t\t\t\t\t{\n\t\t\t\t\t\tsettings.onSubmitButtonClick(new FormData(content));\n\t\t\t\t\t}\n\n\t\t\t\t\tpopup.close();\n\t\t\t\t},\n\t\t\t}),\n\t\t\tnew Button({\n\t\t\t\tcolor: Button.Color.LINK,\n\t\t\t\ttext: Loc.getMessage('BIZPROC_JS_AUTOMATION_CANCEL_BUTTON_CAPS'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tpopup.close();\n\t\t\t\t},\n\t\t\t}),\n\t\t],\n\t\twidth: 482,\n\t\tpadding: 20,\n\t\tcloseIcon: false,\n\t\tautoHide: true,\n\t\ttitleBar: false,\n\t\tangle: {\n\t\t\toffset: (settings.bindElement.clientWidth + 33) / 2,\n\t\t},\n\t\toverlay: { backgroundColor: 'transparent' },\n\t\tevents: {\n\t\t\tonClose: () => {\n\t\t\t\tpopup.destroy();\n\t\t\t},\n\t\t},\n\t});\n\n\tpopup.show();\n};\n\nexport default showExecutionQueuePopup;\n","import { Type, Dom, Loc, Event, Runtime, Uri, Text, Tag, ajax } from 'main.core';\nimport { BaseEvent, EventEmitter } from 'main.core.events';\nimport {\n\tContext,\n\tSelectorContext,\n\tgetGlobalContext,\n\tTracker,\n\tDesigner,\n\tConditionGroupSelector,\n\tConditionGroup,\n\tDelayIntervalSelector,\n\tSelectorManager, SelectorItemsManager, enrichFieldsWithModifiers,\n} from 'bizproc.automation';\nimport { SaveButton, BaseButton, CancelButton } from 'ui.buttons';\nimport { UI } from 'ui.notification';\nimport { Robot } from './robot';\nimport { TrackingStatus } from './tracker/types';\nimport { UserOptions } from './user-options';\nimport { ViewMode } from './view-mode';\nimport { Helper } from './helper';\nimport { HelpHint } from './help-hint';\nimport { DelayInterval } from './delay-interval';\nimport { Popup } from 'main.popup';\n\nimport 'ui.hint';\nimport showExecutionQueuePopup from './views/execution-queue-popup';\n\nexport class Template extends EventEmitter\n{\n\t#context: Context;\n\n\tconstants: Object<string, any>;\n\tvariables: Object<string, any>;\n\trobotSettingsControls;\n\n\t#delayMinLimitM: number;\n\t#userOptions: UserOptions | null;\n\t#tracker: Tracker;\n\t#viewMode: ViewMode;\n\n\t#templateContainerNode: Element;\n\t#templateNode: ?Element;\n\t#listNode: Element | undefined;\n\t#buttonsNode: Element | undefined;\n\n\t#robots: Array<Robot>;\n\t#data: Object;\n\n\tconstructor(params: {\n\t\tcontext: ?Context,\n\t\ttemplateContainerNode: Element,\n\t\tconstants: Object<string, any>,\n\t\tvariables: Object<string, any>,\n\t\tuserOptions: ?UserOptions,\n\t\tdelayMinLimitM: number,\n\t})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Bizproc.Automation');\n\n\t\tthis.#context = params.context ?? getGlobalContext();\n\t\tthis.constants = params.constants;\n\t\tthis.variables = params.variables;\n\n\t\tthis.#templateContainerNode = params.templateContainerNode;\n\t\tthis.#delayMinLimitM = params.delayMinLimitM;\n\t\tthis.#userOptions = params.userOptions;\n\t\tthis.#tracker = this.#context.tracker;\n\t\tthis.#data = {};\n\t\tthis.#robots = [];\n\t\tthis.#viewMode = ViewMode.none();\n\t}\n\n\tinit(data: Object, viewMode: number)\n\t{\n\t\tif (Type.isPlainObject(data))\n\t\t{\n\t\t\tthis.#data = data;\n\t\t\tif (!Type.isPlainObject(this.#data.CONSTANTS))\n\t\t\t{\n\t\t\t\tthis.#data.CONSTANTS = {};\n\t\t\t}\n\n\t\t\tif (!Type.isPlainObject(this.#data.PARAMETERS))\n\t\t\t{\n\t\t\t\tthis.#data.PARAMETERS = {};\n\t\t\t}\n\n\t\t\tif (!Type.isPlainObject(this.#data.VARIABLES))\n\t\t\t{\n\t\t\t\tthis.#data.VARIABLES = {};\n\t\t\t}\n\n\t\t\tif (!Type.isNil(this.#data.DOCUMENT_STATUS))\n\t\t\t{\n\t\t\t\tthis.#data.DOCUMENT_STATUS = String(this.#data.DOCUMENT_STATUS);\n\t\t\t}\n\n\t\t\tthis.markExternalModified(this.#data.IS_EXTERNAL_MODIFIED);\n\t\t\tthis.markModified(false);\n\t\t}\n\n\t\tthis.#viewMode = ViewMode.fromRaw(viewMode);\n\n\t\tif (!this.#viewMode.isNone())\n\t\t{\n\t\t\tthis.#templateNode = this.#templateContainerNode.querySelector(\n\t\t\t\t`[data-role=\"automation-template\"][data-status-id=\"${this.#data.DOCUMENT_STATUS}\"]`,\n\t\t\t);\n\t\t\tthis.#listNode = this.#templateNode.querySelector('[data-role=\"robot-list\"]');\n\t\t\tthis.#buttonsNode = this.#templateNode.querySelector('[data-role=\"buttons\"]');\n\n\t\t\tthis.initRobots();\n\t\t\tthis.initButtons();\n\n\t\t\tif (!this.isExternalModified() && this.canEdit())\n\t\t\t{\n\t\t\t\t// register DD\n\t\t\t\tjsDD.registerDest(this.#templateNode, 10);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tjsDD.unregisterDest(this.#templateNode);\n\t\t\t}\n\t\t}\n\t}\n\n\treInit(data: Object, viewMode: number)\n\t{\n\t\tDom.clean(this.#listNode);\n\t\tDom.clean(this.#buttonsNode);\n\n\t\tthis.destroy();\n\t\tthis.init(data, viewMode);\n\t}\n\n\tdestroy()\n\t{\n\t\tthis.#robots.forEach((robot) => robot.destroy());\n\t}\n\n\tstatic copyRobotTo(dstTemplate: Template, robot: Robot, beforeRobot: ?Robot): Robot\n\t{\n\t\tconst copiedRobot = robot.copyTo(dstTemplate, beforeRobot);\n\t\tdstTemplate.emit('Template:robot:add', { robot: copiedRobot });\n\t}\n\n\tcanEdit(): boolean\n\t{\n\t\treturn this.#context.canEdit;\n\t}\n\n\tinitRobots()\n\t{\n\t\tthis.#robots = [];\n\n\t\tif (Type.isArray(this.#data.ROBOTS))\n\t\t{\n\t\t\tfor (let i = 0; i < this.#data.ROBOTS.length; ++i)\n\t\t\t{\n\t\t\t\tconst robot = new Robot({\n\t\t\t\t\tdocument: this.#context.document,\n\t\t\t\t\ttemplate: this,\n\t\t\t\t\tisFrameMode: this.#context.get('isFrameMode'),\n\t\t\t\t\ttracker: this.#tracker,\n\t\t\t\t});\n\t\t\t\trobot.init(this.#data.ROBOTS[i], this.#viewMode);\n\t\t\t\tthis.insertRobotNode(robot.node);\n\t\t\t\tthis.#robots.push(robot);\n\t\t\t}\n\t\t}\n\t}\n\n\tget robots(): Array<Robot>\n\t{\n\t\treturn this.#robots;\n\t}\n\n\tget userOptions(): ?UserOptions\n\t{\n\t\treturn this.#userOptions;\n\t}\n\n\tgetSelectedRobotNames(): Array<Robot>\n\t{\n\t\tconst selectedRobots = [];\n\n\t\tthis.#robots.forEach((robot) => {\n\t\t\tif (robot.isSelected())\n\t\t\t{\n\t\t\t\tselectedRobots.push(robot.data.Name);\n\t\t\t}\n\t\t});\n\n\t\treturn selectedRobots;\n\t}\n\n\tgetActivatedRobotNames(): Array<string>\n\t{\n\t\tconst activatedRobots = [];\n\t\tthis.#robots.forEach((robot) => {\n\t\t\tif (robot.isActivated())\n\t\t\t{\n\t\t\t\tactivatedRobots.push(robot.data.Name);\n\t\t\t}\n\t\t});\n\n\t\treturn activatedRobots;\n\t}\n\n\tgetDeactivatedRobotNames(): Array<string>\n\t{\n\t\tconst deactivatedRobots = [];\n\t\tthis.#robots.forEach((robot) => {\n\t\t\tif (!robot.isActivated())\n\t\t\t{\n\t\t\t\tdeactivatedRobots.push(robot.data.Name);\n\t\t\t}\n\t\t});\n\n\t\treturn deactivatedRobots;\n\t}\n\n\tgetSerializedRobots(): []\n\t{\n\t\tconst serialized = [];\n\t\tthis.#robots.forEach((robot) => serialized.push(robot.serialize()));\n\n\t\treturn serialized;\n\t}\n\n\tgetId()\n\t{\n\t\treturn this.#data.ID;\n\t}\n\n\tgetStatusId(): ?string\n\t{\n\t\treturn this.#data.DOCUMENT_STATUS;\n\t}\n\n\tgetStatus(): ?{}\n\t{\n\t\treturn this.#context.document.statusList.find((status) => String(status.STATUS_ID) === this.getStatusId());\n\t}\n\n\tgetTemplateId(): number\n\t{\n\t\tconst id = parseInt(this.#data.ID, 10);\n\n\t\treturn Number.isNaN(id) ? 0 : id;\n\t}\n\n\tgetDocumentType(): ?Array\n\t{\n\t\treturn this.#data.DOCUMENT_TYPE;\n\t}\n\n\tinitButtons()\n\t{\n\t\tif (this.isExternalModified())\n\t\t{\n\t\t\tthis.createExternalLocker();\n\t\t\tthis.createManageModeButton();\n\t\t\tthis.createTerminateRobotsButton();\n\t\t}\n\t\telse if (this.#viewMode.isEdit() && this.getTemplateId() > 0)\n\t\t{\n\t\t\tthis.createConstantsEditButton();\n\t\t\tthis.createParametersEditButton();\n\t\t\tthis.createExternalEditTemplateButton();\n\t\t\tthis.createManageModeButton();\n\t\t\tthis.createTerminateRobotsButton();\n\t\t}\n\t}\n\n\tenableManageMode(isActive: boolean)\n\t{\n\t\tif (this.#listNode)\n\t\t{\n\t\t\tthis.#viewMode = ViewMode.manage().setProperty('isActive', isActive);\n\n\t\t\tif (isActive)\n\t\t\t{\n\t\t\t\tDom.addClass(this.#listNode, '--multiselect-mode');\n\t\t\t}\n\n\t\t\tif (this.isExternalModified())\n\t\t\t{\n\t\t\t\tDom.addClass(this.#listNode, '--locked-node');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.#robots.forEach((robot) => {\n\t\t\t\t\tif (robot.isInvalid())\n\t\t\t\t\t{\n\t\t\t\t\t\trobot.enableManageMode(false);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\trobot.enableManageMode(isActive);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tdisableManageMode()\n\t{\n\t\tif (this.#listNode)\n\t\t{\n\t\t\tthis.#viewMode = ViewMode.edit();\n\t\t\tDom.removeClass(this.#listNode, '--multiselect-mode');\n\t\t\tif (this.isExternalModified())\n\t\t\t{\n\t\t\t\tDom.removeClass(this.#listNode, '--locked-node');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.#robots.forEach((robot) => {\n\t\t\t\t\trobot.disableManageMode();\n\n\t\t\t\t\tif (!robot.isInvalid())\n\t\t\t\t\t{\n\t\t\t\t\t\tconst draggableNode = robot.node.querySelector('.bizproc-automation-robot-container-wrapper');\n\t\t\t\t\t\tif (draggableNode)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tDom.addClass(draggableNode, 'bizproc-automation-robot-container-wrapper-draggable');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tenableDragAndDrop()\n\t{\n\t\tthis.#robots.forEach((robot) => {\n\t\t\tif (!robot.isInvalid())\n\t\t\t{\n\t\t\t\trobot.registerItem(robot.node);\n\n\t\t\t\tconst draggableNode = robot.node.querySelector('.bizproc-automation-robot-container-wrapper');\n\t\t\t\tif (draggableNode)\n\t\t\t\t{\n\t\t\t\t\tDom.addClass(draggableNode, 'bizproc-automation-robot-container-wrapper-draggable');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tdisableDragAndDrop()\n\t{\n\t\tthis.#robots.forEach((robot) => robot.unregisterItem(robot.node));\n\n\t\tthis.#templateNode.querySelectorAll('.bizproc-automation-robot-container-wrapper').forEach((node) => {\n\t\t\tDom.removeClass(node, 'bizproc-automation-robot-container-wrapper-draggable');\n\t\t});\n\t}\n\n\tcreateExternalEditTemplateButton(): undefined | boolean\n\t{\n\t\tif (Type.isNil(this.#context.bizprocEditorUrl))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst anchor = Tag.render`\n\t\t\t<a class=\"bizproc-automation-robot-btn-set\" href=\"#\" target=\"_top\">\n\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_EXTERNAL_EDIT')}\n\t\t\t</a>\n\t\t`;\n\t\tEvent.bind(anchor, 'click', (event) => {\n\t\t\tevent.preventDefault();\n\n\t\t\tif (!this.#viewMode.isManage())\n\t\t\t{\n\t\t\t\tthis.onExternalEditTemplateButtonClick(anchor);\n\t\t\t}\n\t\t});\n\n\t\tif (this.#context.bizprocEditorUrl.length === 0)\n\t\t{\n\t\t\tDom.addClass(anchor, 'bizproc-automation-robot-btn-set-locked');\n\t\t}\n\n\t\tDom.append(anchor, this.#buttonsNode);\n\t}\n\n\tcreateManageModeButton()\n\t{\n\t\tif (!this.#context.canManage)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst manageButton = Tag.render`\n\t\t\t<a class=\"bizproc-automation-robot-btn-set\" target=\"_top\" style=\"cursor: pointer\">\n\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_MANAGE_ROBOTS_1')}\n\t\t\t</a>\n\t\t`;\n\t\tEvent.bind(manageButton, 'click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.onManageModeButtonClick(manageButton);\n\t\t});\n\n\t\tDom.append(manageButton, this.#buttonsNode);\n\t}\n\n\tonManageModeButtonClick(manageButtonNode: HTMLElement)\n\t{\n\t\tif (this.canEdit())\n\t\t{\n\t\t\tthis.emit('Template:enableManageMode', {\n\t\t\t\tdocumentStatus: this.#data.DOCUMENT_STATUS,\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tHelpHint.showNoPermissionsHint(manageButtonNode);\n\t\t}\n\t}\n\n\tcreateTerminateRobotsButton()\n\t{\n\t\tif (!this.hasRunningRobots() && this.getRunningCustomRobots().length === 0)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst terminateButton = Tag.render`\n\t\t\t<a class=\"bizproc-automation-robot-btn-set btn-pointer\" target=\"_top\">\n\t\t\t\t${Loc.getMessage('BIZPROC_JS_AUTOMATION_ROBOTS_TERMINATE')}\n\t\t\t</a>\n\t\t`;\n\t\tEvent.bind(terminateButton, 'click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.onTerminateRobotsButtonClick(terminateButton);\n\t\t});\n\n\t\tDom.append(terminateButton, this.#buttonsNode);\n\t}\n\n\tonTerminateRobotsButtonClick(terminateButton)\n\t{\n\t\tconst templateId = this.getTemplateId();\n\t\tconst signedDocument = this.#context.signedDocument;\n\t\tif (templateId > 0 && signedDocument)\n\t\t{\n\t\t\tDom.addClass(terminateButton, '--disabled');\n\t\t\tajax\n\t\t\t\t.runAction('bizproc.workflow.terminateByTemplate', {\n\t\t\t\t\tdata: { templateId, signedDocument },\n\t\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tthis.notifyMessage(Loc.getMessage('BIZPROC_JS_AUTOMATION_ROBOTS_STOPPED'));\n\t\t\t\t\tthis.stopTemplate();\n\t\t\t\t})\n\t\t\t\t.catch((response) => {\n\t\t\t\t\tresponse.errors.forEach((error) => {\n\t\t\t\t\t\tthis.notifyMessage(error.message);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t}\n\t}\n\n\tstopTemplate()\n\t{\n\t\tconst loaders = this.#templateNode.querySelectorAll('.bizproc-automation-robot-information.--loader');\n\t\tloaders.forEach((loader) => {\n\t\t\tDom.removeClass(loader, '--loader');\n\t\t});\n\t}\n\n\tnotifyMessage(message)\n\t{\n\t\tUI.Notification.Center.notify({\n\t\t\tcontent: message,\n\t\t\tautoHideDelay: 5000,\n\t\t});\n\t}\n\n\thasRunningRobots(): boolean\n\t{\n\t\treturn Boolean(this.#robots.some((robot) => robot.getLogStatus() === TrackingStatus.RUNNING));\n\t}\n\n\tgetRunningCustomRobots(): []\n\t{\n\t\treturn this.#data.CUSTOM_ROBOTS ?? [];\n\t}\n\n\tcreateConstantsEditButton(): boolean | undefined\n\t{\n\t\tif (Type.isNil(this.#context.constantsEditorUrl))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst url = (\n\t\t\tthis.#viewMode.isManage()\n\t\t\t\t? '#'\n\t\t\t\t: this.#context.constantsEditorUrl.replace('#ID#', this.getTemplateId())\n\t\t);\n\n\t\tif (url.length === 0)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst anchor = Tag.render`\n\t\t\t<a class=\"bizproc-automation-robot-btn-set\" href=\"${Text.encode(url)}\">\n\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_CONSTANTS_EDIT')}\n\t\t\t</a>\n\t\t`;\n\t\tDom.append(anchor, this.#buttonsNode);\n\t}\n\n\tcreateParametersEditButton(): boolean | undefined\n\t{\n\t\tif (Type.isNil(this.#context.parametersEditorUrl))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst url = this.#context.parametersEditorUrl.replace('#ID#', this.getTemplateId());\n\n\t\tif (url.length === 0 || this.#viewMode.isManage())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst anchor = Tag.render`\n\t\t\t<a class=\"bizproc-automation-robot-btn-set\" href=\"${Text.encode(url)}\">\n\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_PARAMETERS_EDIT')}\n\t\t\t</a>\n\t\t`;\n\t\tDom.append(anchor, this.#buttonsNode);\n\t}\n\n\tcreateExternalLocker()\n\t{\n\t\tconst { root, iconBlock } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-robot-container\">\n\t\t\t\t<div class=\"bizproc-automation-robot-container-wrapper bizproc-automation-robot-container-wrapper-lock\">\n\t\t\t\t\t<div class=\"bizproc-automation-robot-deadline\"></div>\n\t\t\t\t\t<div class=\"bizproc-automation-robot-title\">\n\t\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_EXTERNAL_EDIT_TEXT')}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"bizproc-automation-robot-information\" ref=\"iconBlock\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tif (this.getRunningCustomRobots().length > 0)\n\t\t{\n\t\t\tDom.addClass(iconBlock, '--loader');\n\t\t}\n\n\t\tif (this.#viewMode.isEdit())\n\t\t{\n\t\t\tconst settingsBtn = Tag.render`\n\t\t\t\t<div class=\"bizproc-automation-robot-btn-settings\">\n\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_EDIT')}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t\tEvent.bind(root, 'click', (event) => {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tif (!this.#viewMode.isManage())\n\t\t\t\t{\n\t\t\t\t\tthis.onExternalEditTemplateButtonClick(root);\n\t\t\t\t}\n\t\t\t});\n\t\t\tDom.append(settingsBtn, root);\n\n\t\t\tconst deleteBtn = Tag.render`<span class=\"bizproc-automation-robot-btn-delete\"></span>`;\n\t\t\tEvent.bind(deleteBtn, 'click', (event) => {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tif (!this.#viewMode.isManage())\n\t\t\t\t{\n\t\t\t\t\tthis.onUnsetExternalModifiedClick(deleteBtn);\n\t\t\t\t}\n\t\t\t});\n\t\t\tDom.append(deleteBtn, root.lastChild);\n\t\t}\n\n\t\tDom.append(root, this.#listNode);\n\t\tthis.#templateNode = root;\n\t}\n\n\tonSearch(event: BaseEvent)\n\t{\n\t\tif (this.isExternalModified())\n\t\t{\n\t\t\tthis.onExternalModifiedSearch(event);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#robots.forEach((robot) => robot.onSearch(event));\n\t\t}\n\t}\n\n\tonExternalModifiedSearch(event)\n\t{\n\t\tif (this.#templateNode)\n\t\t{\n\t\t\tconst query = event.getData().queryString;\n\t\t\tDom[query ? 'addClass' : 'removeClass'](this.#templateNode, '--search-mismatch');\n\t\t}\n\t}\n\n\tonExternalEditTemplateButtonClick(button)\n\t{\n\t\tif (!this.canEdit())\n\t\t{\n\t\t\tHelpHint.showNoPermissionsHint(button);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.#context.bizprocEditorUrl.length === 0)\n\t\t{\n\t\t\tif (top.BX.UI && top.BX.UI.InfoHelper)\n\t\t\t{\n\t\t\t\ttop.BX.UI.InfoHelper.show('limit_office_bp_designer');\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst templateId = this.getTemplateId();\n\t\tif (templateId > 0)\n\t\t{\n\t\t\tthis.openBizprocEditor(templateId);\n\t\t}\n\t}\n\n\tonUnsetExternalModifiedClick(button)\n\t{\n\t\tif (!this.canEdit())\n\t\t{\n\t\t\tHelpHint.showNoPermissionsHint(button);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#templateNode = null;\n\n\t\tthis.markExternalModified(false);\n\t\tthis.markModified();\n\t\tthis.reInit(null, this.#viewMode.intoRaw());\n\t}\n\n\topenBizprocEditor(templateId)\n\t{\n\t\ttop.window.location.href = this.#context.bizprocEditorUrl.replace('#ID#', templateId);\n\t}\n\n\taddRobot(robotData, callback)\n\t{\n\t\tconst robot = new Robot({\n\t\t\tdocument: this.#context.document,\n\t\t\ttemplate: this,\n\t\t\tisFrameMode: this.#context.get('isFrameMode'),\n\t\t\ttracker: this.#tracker,\n\t\t});\n\t\tconst initData = {\n\t\t\tType: robotData.CLASS,\n\t\t\tProperties: {\n\t\t\t\tTitle: robotData.NAME,\n\t\t\t},\n\t\t\tDialogContext: robotData.DIALOG_CONTEXT,\n\t\t};\n\n\t\tif (this.#robots.length > 0)\n\t\t{\n\t\t\tconst parentRobot = this.#robots[this.#robots.length - 1];\n\t\t\tif (!parentRobot.getDelayInterval().isNow() || parentRobot.isExecuteAfterPrevious())\n\t\t\t{\n\t\t\t\tinitData.Delay = parentRobot.getDelayInterval().serialize();\n\t\t\t\tinitData.ExecuteAfterPrevious = 1;\n\t\t\t}\n\t\t}\n\n\t\trobot.draft = true;\n\t\trobot.init(initData, this.#viewMode);\n\n\t\tthis.insertRobot(robot);\n\t\tthis.insertRobotNode(robot.node);\n\t\tthis.emit('Template:robot:add', { robot });\n\n\t\tif (callback)\n\t\t{\n\t\t\tcallback.call(this, robot);\n\t\t}\n\t}\n\n\tinsertRobot(robot, beforeRobot)\n\t{\n\t\tif (beforeRobot)\n\t\t{\n\t\t\tfor (let i = 0; i < this.#robots.length; ++i)\n\t\t\t{\n\t\t\t\tif (this.#robots[i] !== beforeRobot)\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tthis.#robots.splice(i, 0, robot);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#robots.push(robot);\n\t\t}\n\n\t\tthis.markModified();\n\t}\n\n\tgetNextRobot(robot)\n\t{\n\t\tfor (let i = 0; i < this.#robots.length; ++i)\n\t\t{\n\t\t\tif (this.#robots[i] === robot)\n\t\t\t{\n\t\t\t\treturn (this.#robots[i + 1] || null);\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tdeleteRobot(robot, callback)\n\t{\n\t\tfor (let i = 0; i < this.#robots.length; ++i)\n\t\t{\n\t\t\tif (this.#robots[i].isEqual(robot))\n\t\t\t{\n\t\t\t\tthis.#robots.splice(i, 1);\n\n\t\t\t\tif (callback)\n\t\t\t\t{\n\t\t\t\t\tcallback(robot);\n\t\t\t\t}\n\n\t\t\t\tthis.markModified();\n\t\t\t\tthis.emit('Template:robot:delete', { robot });\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tinsertRobotNode(robotNode, beforeNode)\n\t{\n\t\tif (beforeNode)\n\t\t{\n\t\t\tthis.#listNode.insertBefore(robotNode, beforeNode);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.append(robotNode, this.#listNode);\n\t\t}\n\t}\n\n\topenRobotSettingsDialog(robot: Robot, context?: Object, saveCallback: (Robot) => void)\n\t{\n\t\tif (!Type.isPlainObject(context))\n\t\t{\n\t\t\tcontext = {};\n\t\t}\n\n\t\tif (Designer.getInstance().getRobotSettingsDialog())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst robotBrokenLinks = robot.getBrokenLinks();\n\n\t\tconst formName = 'bizproc_automation_robot_dialog';\n\t\tconst form = Tag.render`\n\t\t\t<form name=\"${formName}\">\n\t\t\t\t${this.#renderExecutionQueue(robot)}\n\t\t\t\t${this.renderDelaySettings(robot)}\n\t\t\t\t${this.renderConditionSettings(robot)}\n\t\t\t\t${robotBrokenLinks.length > 0 ? this.renderBrokenLinkAlert(robotBrokenLinks) : ''}\n\t\t\t</form>\n\t\t`;\n\n\t\tDesigner.getInstance().setRobotSettingsDialog({\n\t\t\ttemplate: this,\n\t\t\tcontext,\n\t\t\trobot,\n\t\t\tform,\n\t\t});\n\n\t\tcontext.DOCUMENT_CATEGORY_ID = this.#context.document.getCategoryId();\n\t\tif (\n\t\t\tType.isPlainObject(robot.data.DialogContext)\n\t\t\t&& !Type.isNil(robot.data.DialogContext.addMenuGroup)\n\t\t)\n\t\t{\n\t\t\tcontext.addMenuGroup = robot.data.DialogContext.addMenuGroup;\n\t\t}\n\n\t\tajax({\n\t\t\tmethod: 'POST',\n\t\t\tdataType: 'html',\n\t\t\turl: Uri.addParam(\n\t\t\t\tthis.#context.ajaxUrl,\n\t\t\t\t{\n\t\t\t\t\tanalyticsLabel: `automation_robot${robot.draft ? '_draft' : ''}_settings_${robot.data.Type.toLowerCase()}`,\n\t\t\t\t},\n\t\t\t),\n\t\t\tdata: {\n\t\t\t\tajax_action: 'get_robot_dialog',\n\t\t\t\tdocument_signed: this.#context.signedDocument,\n\t\t\t\tdocument_status: this.#context.document.getCurrentStatusId(),\n\t\t\t\tcontext,\n\t\t\t\trobot_json: Helper.toJsonString(robot.serialize()),\n\t\t\t\tcontext_robots_json: Helper.toJsonString(\n\t\t\t\t\tthis.#robots.filter((r) => r !== robot).map((r) => r.serialize()),\n\t\t\t\t),\n\t\t\t\tform_name: formName,\n\t\t\t},\n\t\t\tonsuccess: (html) => {\n\t\t\t\tif (html)\n\t\t\t\t{\n\t\t\t\t\tconst dialogRows = Dom.create('div', { html });\n\t\t\t\t\tDom.append(dialogRows, form);\n\t\t\t\t}\n\n\t\t\t\tthis.showRobotSettingsPopup(robot, form, saveCallback);\n\t\t\t},\n\t\t});\n\t}\n\n\tshowRobotSettingsPopup(robot: Robot, form: HTMLFormElement, saveCallback: (Robot) => void)\n\t{\n\t\tlet popupMinWidth = 580;\n\t\tlet popupWidth = popupMinWidth;\n\n\t\tif (this.#userOptions)\n\t\t{\n\t\t\t// TODO move from if?\n\t\t\tthis.emit('Template:robot:showSettings');\n\t\t\tpopupWidth = parseInt(\n\t\t\t\tthis.#userOptions.get('defaults', 'robot_settings_popup_width', 580),\n\t\t\t\t10,\n\t\t\t);\n\t\t}\n\n\t\tthis.initRobotSettingsControls(robot, form);\n\n\t\tif (\n\t\t\trobot.data.Type === 'CrmSendEmailActivity'\n\t\t\t|| robot.data.Type === 'MailActivity'\n\t\t\t|| robot.data.Type === 'RpaApproveActivity'\n\t\t)\n\t\t{\n\t\t\tpopupMinWidth += 170;\n\t\t\tif (popupWidth < popupMinWidth)\n\t\t\t{\n\t\t\t\tpopupWidth = popupMinWidth;\n\t\t\t}\n\t\t}\n\n\t\tlet robotTitle = Loc.getMessage('BIZPROC_AUTOMATION_ROBOT_SETTINGS_TITLE');\n\t\tlet descriptionTitle = Loc.getMessage('BIZPROC_AUTOMATION_ROBOT_SETTINGS_TITLE');\n\n\t\tif (robot.hasTitle())\n\t\t{\n\t\t\trobotTitle = robot.getTitle();\n\t\t\tdescriptionTitle = robot.getDescriptionTitle();\n\n\t\t\tif (descriptionTitle === 'untitled')\n\t\t\t{\n\t\t\t\tdescriptionTitle = robotTitle;\n\t\t\t}\n\t\t}\n\n\t\tconst titleBarContent = Tag.render`\n\t\t\t<div class=\"popup-window-titlebar-text bizproc-automation-robot-settings-popup-titlebar\">\n\t\t\t\t<span class=\"bizproc-automation-robot-settings-popup-titlebar-text\">${Text.encode(robotTitle)}</span>\n\t\t\t\t<div class=\"ui-hint\">\n\t\t\t\t\t<span class=\"ui-hint-icon\" data-text=\"${Text.encode(descriptionTitle)}\"></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t\tHelpHint.bindAll(titleBarContent);\n\n\t\tconst popup = new Popup({\n\t\t\tid: Helper.generateUniqueId(),\n\t\t\tbindElement: null,\n\t\t\tcontent: form,\n\t\t\tcloseByEsc: true,\n\t\t\tbuttons: [\n\t\t\t\tnew SaveButton({\n\t\t\t\t\tonclick: (button: BaseButton) => {\n\t\t\t\t\t\tconst isNewRobot = robot.draft;\n\t\t\t\t\t\tconst callback = () => {\n\t\t\t\t\t\t\tpopup.close();\n\t\t\t\t\t\t\tif (isNewRobot)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.emit('Template:robot:add', { robot });\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (saveCallback)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsaveCallback(robot);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tthis.saveRobotSettings(form, robot, callback, button.getContainer());\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tnew CancelButton({\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_JS_AUTOMATION_CANCEL_BUTTON_CAPS'),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tpopup.close();\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\twidth: popupWidth,\n\t\t\tminWidth: popupMinWidth,\n\t\t\tminHeight: 100,\n\t\t\tcontentPadding: 12,\n\t\t\tresizable: true,\n\t\t\tcloseIcon: true,\n\t\t\tevents: {\n\t\t\t\tonPopupClose: () => {\n\t\t\t\t\tDesigner.getInstance().setRobotSettingsDialog(null);\n\t\t\t\t\tthis.destroyRobotSettingsControls();\n\t\t\t\t\tpopup.destroy();\n\t\t\t\t\tthis.emit('Template:robot:closeSettings');\n\t\t\t\t},\n\t\t\t\tonPopupResize: () => {\n\t\t\t\t\tthis.onResizeRobotSettings();\n\t\t\t\t},\n\t\t\t\tonPopupResizeEnd: () => {\n\t\t\t\t\tif (this.#userOptions)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.#userOptions.set('defaults', 'robot_settings_popup_width', popup.getWidth());\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t\ttitleBar: {\n\t\t\t\tcontent: titleBarContent,\n\t\t\t},\n\t\t\tdraggable: { restrict: false },\n\t\t});\n\n\t\tDesigner.getInstance().getRobotSettingsDialog().popup = popup;\n\t\tpopup.show();\n\t}\n\n\tinitRobotSettingsControls(robot, node)\n\t{\n\t\tif (!Type.isArray(this.robotSettingsControls))\n\t\t{\n\t\t\tthis.robotSettingsControls = [];\n\t\t}\n\n\t\tconst controlNodes = node.querySelectorAll('[data-role]');\n\t\tfor (const controlNode of controlNodes)\n\t\t{\n\t\t\tthis.initRobotSettingsControl(robot, controlNode);\n\t\t}\n\t}\n\n\tinitRobotSettingsControl(robot, controlNode)\n\t{\n\t\tif (!Type.isArray(this.robotSettingsControls))\n\t\t{\n\t\t\tthis.robotSettingsControls = [];\n\t\t}\n\n\t\tconst role = controlNode.getAttribute('data-role');\n\n\t\tconst controlProps = {\n\t\t\tcontext: new SelectorContext({\n\t\t\t\tfields: Runtime.clone(this.#context.document.getFields()),\n\t\t\t\tuseSwitcherMenu: this.#context.get('showTemplatePropertiesMenuOnSelecting'),\n\t\t\t\trootGroupTitle: this.#context.document.title,\n\t\t\t\tuserOptions: this.#context.userOptions,\n\t\t\t}),\n\t\t\tneedSync: robot.draft,\n\t\t\tcheckbox: controlNode,\n\t\t};\n\n\t\tif (role === SelectorManager.SELECTOR_ROLE_USER)\n\t\t{\n\t\t\tconst fieldProperty = JSON.parse(controlNode.getAttribute('data-property'));\n\t\t\tcontrolProps.context.set('additionalUserFields', [\n\t\t\t\t...this.#getUserSelectorAdditionalFields(fieldProperty),\n\t\t\t\t...this.globalConstants.filter((constant) => constant.Type === 'user').map((constant) => ({\n\t\t\t\t\tid: constant.Expression,\n\t\t\t\t\ttitle: constant.Name,\n\t\t\t\t})),\n\t\t\t\t...this.globalVariables.filter((variable) => variable.Type === 'user').map((variable) => ({\n\t\t\t\t\tid: variable.Expression,\n\t\t\t\t\ttitle: variable.Name,\n\t\t\t\t})),\n\t\t\t]);\n\t\t}\n\t\telse if (role === SelectorManager.SELECTOR_ROLE_FILE)\n\t\t{\n\t\t\tthis.robots.forEach((robot) => {\n\t\t\t\tcontrolProps.context.fields.push(\n\t\t\t\t\t...robot\n\t\t\t\t\t\t.getReturnFieldsDescription()\n\t\t\t\t\t\t.filter((field) => field.Type === 'file')\n\t\t\t\t\t\t.map((field) => ({\n\t\t\t\t\t\t\tId: `{{~${robot.getId()}:${field.Id}}}`,\n\t\t\t\t\t\t\tName: `${robot.getTitle()}: ${field.Name}`,\n\t\t\t\t\t\t\tType: 'file',\n\t\t\t\t\t\t\tExpression: `{{~${robot.getId()}:${field.Id}}}`,\n\t\t\t\t\t\t})),\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tconst control = SelectorManager.createSelectorByRole(role, controlProps);\n\n\t\tif (control && role !== SelectorManager.SELECTOR_ROLE_SAVE_STATE)\n\t\t{\n\t\t\tcontrol.renderTo(controlNode);\n\n\t\t\tcontrol.subscribe('onAskConstant', (event) => {\n\t\t\t\tconst { fieldProperty } = event.getData();\n\t\t\t\tcontrol.onFieldSelect(this.addConstant(fieldProperty));\n\t\t\t});\n\t\t\tcontrol.subscribe('onAskParameter', (event) => {\n\t\t\t\tconst { fieldProperty } = event.getData();\n\t\t\t\tcontrol.onFieldSelect(this.addParameter(fieldProperty));\n\t\t\t});\n\t\t\tcontrol.subscribe('onOpenFieldMenu', (event) => this.onOpenMenu(event, robot));\n\t\t\tcontrol.subscribe('onOpenMenu', (event) => this.onOpenMenu(event, robot));\n\t\t}\n\n\t\tBX.UI.Hint.init(controlNode);\n\n\t\tif (control)\n\t\t{\n\t\t\tthis.robotSettingsControls.push(control);\n\t\t}\n\t}\n\n\t#getUserSelectorAdditionalFields(fieldProperty): Array<object>\n\t{\n\t\tconst additionalFields = (\n\t\t\tthis\n\t\t\t\t.getRobotsWithReturnFields()\n\t\t\t\t.flatMap((robot) => (\n\t\t\t\t\trobot\n\t\t\t\t\t\t.getReturnFieldsDescription()\n\t\t\t\t\t\t.filter((field) => field.Type === 'user')\n\t\t\t\t\t\t.map((field) => ({\n\t\t\t\t\t\t\tid: `{{~${robot.getId()}:${field.Id}}}`,\n\t\t\t\t\t\t\ttitle: `${robot.getTitle()}: ${field.Name}`,\n\t\t\t\t\t\t}))\n\t\t\t\t))\n\t\t);\n\n\t\tif (this.#context.get('showTemplatePropertiesMenuOnSelecting') && fieldProperty)\n\t\t{\n\t\t\tconst ask = this.addConstant(Runtime.clone(fieldProperty));\n\n\t\t\tadditionalFields.push({\n\t\t\t\tid: ask.Expression,\n\t\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_ASK_CONSTANT'),\n\t\t\t\ttabs: ['recents', 'bpuserroles'],\n\t\t\t\tsort: 1,\n\t\t\t});\n\n\t\t\tconst param = this.addParameter(Runtime.clone(fieldProperty));\n\n\t\t\tadditionalFields.push({\n\t\t\t\tid: param.Expression,\n\t\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_ASK_PARAMETER'),\n\t\t\t\ttabs: ['recents', 'bpuserroles'],\n\t\t\t\tsort: 2,\n\t\t\t});\n\t\t}\n\n\t\treturn additionalFields;\n\t}\n\n\tgetRobotsWithReturnFields(skipRobot: ?Robot): Array<Robot>\n\t{\n\t\tconst skipId = skipRobot?.getId() || '';\n\n\t\treturn this\n\t\t\t.robots\n\t\t\t.filter((templateRobot) => (\n\t\t\t\ttemplateRobot.getId() !== skipId && templateRobot.hasReturnFields()\n\t\t\t))\n\t\t;\n\t}\n\n\tdestroyRobotSettingsControls()\n\t{\n\t\tif (this.conditionSelector)\n\t\t{\n\t\t\tthis.conditionSelector.destroy();\n\t\t\tthis.conditionSelector = null;\n\t\t}\n\n\t\tif (Type.isArray(this.robotSettingsControls))\n\t\t{\n\t\t\tfor (let i = 0; i < this.robotSettingsControls.length; ++i)\n\t\t\t{\n\t\t\t\tif (Type.isFunction(this.robotSettingsControls[i].destroy))\n\t\t\t\t{\n\t\t\t\t\tthis.robotSettingsControls[i].destroy();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.robotSettingsControls = null;\n\t}\n\n\tonBeforeSaveRobotSettings()\n\t{\n\t\tif (Type.isArray(this.robotSettingsControls))\n\t\t{\n\t\t\tfor (let i = 0; i < this.robotSettingsControls.length; ++i)\n\t\t\t{\n\t\t\t\tif (Type.isFunction(this.robotSettingsControls[i].onBeforeSave))\n\t\t\t\t{\n\t\t\t\t\tthis.robotSettingsControls[i].onBeforeSave();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonResizeRobotSettings()\n\t{\n\t\tif (Type.isArray(this.robotSettingsControls))\n\t\t{\n\t\t\tfor (let i = 0; i < this.robotSettingsControls.length; ++i)\n\t\t\t{\n\t\t\t\tif (Type.isFunction(this.robotSettingsControls[i].onPopupResize))\n\t\t\t\t{\n\t\t\t\t\tthis.robotSettingsControls[i].onPopupResize();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\trenderDelaySettings(robot)\n\t{\n\t\tconst delay = robot.getDelayInterval().clone();\n\n\t\tconst {\n\t\t\troot,\n\t\t\tdelayTypeNode,\n\t\t\tdelayValueNode,\n\t\t\tdelayValueTypeNode,\n\t\t\tdelayBasisNode,\n\t\t\tdelayWorkTimeNode,\n\t\t\tdelayWaitWorkDayNode,\n\t\t\tdelayInTimeNode,\n\t\t\tdelayIntervalLabelNode,\n\t\t} = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-settings\">\n\t\t\t\t<div class=\"bizproc-automation-popup-settings-block\">\n\t\t\t\t\t<span class=\"bizproc-automation-popup-settings-title-wrapper\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref=\"delayTypeNode\"\n\t\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\t\tname=\"delay_type\"\n\t\t\t\t\t\t\tvalue=\"${Text.encode(delay.type)}\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref=\"delayValueNode\"\n\t\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\t\tname=\"delay_value\"\n\t\t\t\t\t\t\tvalue=\"${Text.encode(delay.value)}\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref=\"delayValueTypeNode\"\n\t\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\t\tname=\"delay_value_type\"\n\t\t\t\t\t\t\tvalue=\"${Text.encode(delay.valueType)}\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref=\"delayBasisNode\"\n\t\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\t\tname=\"delay_basis\"\n\t\t\t\t\t\t\tvalue=\"${Text.encode(delay.basis)}\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<input \n\t\t\t\t\t\t\tref=\"delayWorkTimeNode\"\n\t\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\t\tname=\"delay_worktime\"\n\t\t\t\t\t\t\tvalue=\"${delay.workTime ? 1 : 0}\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref=\"delayWaitWorkDayNode\"\n\t\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\t\tname=\"delay_wait_workday\"\n\t\t\t\t\t\t\tvalue=\"${delay.waitWorkDay ? 1 : 0}\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref=\"delayInTimeNode\"\n\t\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\t\tname=\"delay_in_time\"\n\t\t\t\t\t\t\tvalue=\"${Text.encode(delay.inTimeString)}\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-left\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${Loc.getMessage('BIZPROC_JS_AUTOMATION_TO_EXECUTE_TITLE')}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tref=\"delayIntervalLabelNode\"\n\t\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings-link bizproc-automation-delay-interval-basis\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tconst basisFields = [];\n\n\t\tconst docFields = this.#context.document.getFields();\n\t\tconst minLimitM = this.#delayMinLimitM;\n\n\t\tif (Type.isArray(docFields))\n\t\t{\n\t\t\tfor (const field of docFields)\n\t\t\t{\n\t\t\t\tif (field.Type === 'date' || field.Type === 'datetime')\n\t\t\t\t{\n\t\t\t\t\tbasisFields.push(field);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst delayIntervalSelector = new DelayIntervalSelector({\n\t\t\tlabelNode: delayIntervalLabelNode,\n\t\t\tonchange(delay) {\n\t\t\t\tdelayTypeNode.value = delay.type;\n\t\t\t\tdelayValueNode.value = delay.value;\n\t\t\t\tdelayValueTypeNode.value = delay.valueType;\n\t\t\t\tdelayBasisNode.value = delay.basis;\n\t\t\t\tdelayWorkTimeNode.value = delay.workTime ? 1 : 0;\n\t\t\t\tdelayWaitWorkDayNode.value = delay.waitWorkDay ? 1 : 0;\n\t\t\t\tdelayInTimeNode.value = delay.inTimeString;\n\t\t\t},\n\t\t\tbasisFields,\n\t\t\tminLimitM,\n\t\t\tuseAfterBasis: true,\n\t\t\tshowWaitWorkDay: true,\n\t\t});\n\t\tdelayIntervalSelector.init(delay);\n\n\t\treturn root;\n\t}\n\n\tsetDelaySettingsFromForm(formFields, robot)\n\t{\n\t\tconst delay = new DelayInterval();\n\t\tdelay.setType(formFields.delay_type);\n\t\tdelay.setValue(formFields.delay_value);\n\t\tdelay.setValueType(formFields.delay_value_type);\n\t\tdelay.setBasis(formFields.delay_basis);\n\t\tdelay.setWorkTime(formFields.delay_worktime === '1');\n\t\tdelay.setWaitWorkDay(formFields.delay_wait_workday === '1');\n\t\tdelay.setInTime(formFields.delay_in_time ? formFields.delay_in_time.split(':') : null);\n\t\trobot.setDelayInterval(delay);\n\n\t\tif (robot.hasTemplate())\n\t\t{\n\t\t\trobot.setExecuteAfterPrevious(\n\t\t\t\tformFields.execute_after_previous && (formFields.execute_after_previous) === '1',\n\t\t\t);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\trenderConditionSettings(robot)\n\t{\n\t\tconst conditionGroup = robot.getCondition();\n\t\tthis.conditionSelector = new ConditionGroupSelector(conditionGroup, {\n\t\t\tfields: this.#context.document.getFields(),\n\t\t\tonOpenFieldMenu: (event) => this.onOpenMenu(event, robot),\n\t\t\tonOpenMenu: (event) => this.onOpenMenu(event, robot),\n\t\t\tcaption: {\n\t\t\t\thead: Loc.getMessage('BIZPROC_JS_AUTOMATION_ROBOT_CONDITION_TITLE'),\n\t\t\t},\n\t\t\tisExpanded: this.#userOptions?.get('defaults', 'isConditionGroupExpanded', 'N') === 'Y',\n\t\t});\n\n\t\tthis.conditionSelector.subscribe('onToggleGroupViewClick', (event: BaseEvent) => {\n\t\t\tconst data = event.getData();\n\t\t\tthis.#userOptions.set('defaults', 'isConditionGroupExpanded', data.isExpanded ? 'Y' : 'N');\n\t\t});\n\n\t\treturn this.conditionSelector.createNode();\n\t}\n\n\t#renderExecutionQueue(robot): HTMLDivElement\n\t{\n\t\tconst title = (\n\t\t\trobot.isExecuteAfterPrevious()\n\t\t\t\t? Loc.getMessage('BIZPROC_JS_AUTOMATION_EXECUTION_QUEUE_AFTER_PREVIOUS_TITLE')\n\t\t\t\t: Loc.getMessage('BIZPROC_JS_AUTOMATION_EXECUTION_QUEUE_PARALLEL_TITLE')\n\t\t);\n\t\tconst value = robot.isExecuteAfterPrevious() ? '1' : '0';\n\n\t\tconst { root, executionQueueLink, input } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-settings\">\n\t\t\t\t<div class=\"bizproc-automation-popup-settings-block\">\n\t\t\t\t\t<span class=\"bizproc-automation-popup-settings-title\">\n\t\t\t\t\t\t${Loc.getMessage('BIZPROC_JS_AUTOMATION_EXECUTION_QUEUE_TITLE')}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"bizproc-automation-popup-settings-link-wrapper\">\n\t\t\t\t\t\t<a ref=\"executionQueueLink\" class=\"bizproc-automation-popup-settings-link\">${title}</a>\n\t\t\t\t\t</span>\n\t\t\t\t\t<input ref=\"input\" type=\"hidden\" value=\"${value}\" name=\"execute_after_previous\"/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t\tEvent.bind(executionQueueLink, 'click', () => {\n\t\t\tshowExecutionQueuePopup({\n\t\t\t\tbindElement: executionQueueLink,\n\t\t\t\tcurrentValue: input.value,\n\t\t\t\tonSubmitButtonClick: (formData: FormData) => {\n\t\t\t\t\tconst afterPrevious = formData.get('execution') === 'afterPrevious';\n\t\t\t\t\tDom.adjust(input, { attrs: { value: afterPrevious ? '1' : '0' } });\n\t\t\t\t\tDom.adjust(\n\t\t\t\t\t\texecutionQueueLink,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttext: (\n\t\t\t\t\t\t\t\tafterPrevious\n\t\t\t\t\t\t\t\t\t? Loc.getMessage('BIZPROC_JS_AUTOMATION_EXECUTION_QUEUE_AFTER_PREVIOUS_TITLE')\n\t\t\t\t\t\t\t\t\t: Loc.getMessage('BIZPROC_JS_AUTOMATION_EXECUTION_QUEUE_PARALLEL_TITLE')\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\n\t\treturn root;\n\t}\n\n\tonOpenMenu(event: BaseEvent, robot: Robot): void\n\t{\n\t\tconst selector = event.getData().selector;\n\t\tconst isMixedCondition = event.getData().isMixedCondition;\n\n\t\tconst needAddGroups = !(Type.isBoolean(isMixedCondition) && !isMixedCondition);\n\t\tif (needAddGroups)\n\t\t{\n\t\t\tconst selectorManager = new SelectorItemsManager({\n\t\t\t\tactivityResultFields: this.#getRobotResultFieldForSelector(robot),\n\t\t\t\tconstants: this.getConstants(),\n\t\t\t\t// variables: this.getVariables(),\n\t\t\t\tglobalConstants: this.globalConstants,\n\t\t\t\tglobalVariables: this.globalVariables,\n\t\t\t});\n\n\t\t\tselectorManager.groupsWithChildren.forEach((group) => {\n\t\t\t\tselector.addGroup(group.id, group);\n\t\t\t});\n\t\t}\n\n\t\tthis.emit(\n\t\t\t'Template:onSelectorMenuOpen',\n\t\t\t{\n\t\t\t\ttemplate: this,\n\t\t\t\trobot,\n\t\t\t\t...event.getData(),\n\t\t\t},\n\t\t);\n\t}\n\n\t#getRobotResultFieldForSelector(skipRobot): Array<{id: string, title: string, fields: Array<Field>}>\n\t{\n\t\treturn (\n\t\t\tthis.getRobotsWithReturnFields(skipRobot)\n\t\t\t\t.map((robotWithReturnFields) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: robotWithReturnFields.getId(),\n\t\t\t\t\t\ttitle: robotWithReturnFields.getTitle(),\n\t\t\t\t\t\tfields: enrichFieldsWithModifiers(\n\t\t\t\t\t\t\trobotWithReturnFields.getReturnFieldsDescription(),\n\t\t\t\t\t\t\trobotWithReturnFields.getId(),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfriendly: false,\n\t\t\t\t\t\t\t\tprintable: false,\n\t\t\t\t\t\t\t\tserver: false,\n\t\t\t\t\t\t\t\tresponsible: false,\n\t\t\t\t\t\t\t\tshortLink: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t);\n\t}\n\n\tsetConditionSettingsFromForm(formFields, robot)\n\t{\n\t\trobot.setCondition(ConditionGroup.createFromForm(formFields));\n\n\t\treturn this;\n\t}\n\n\trenderBrokenLinkAlert(brokenLinks: [] = []): HTMLDivElement\n\t{\n\t\tconst moreInfoNode = Tag.render`\n\t\t\t<div class=\"bizproc-automation-robot-broken-link-full-info\">\n\t\t\t\t${brokenLinks\n\t\t\t\t\t.map((value) => Text.encode(value))\n\t\t\t\t\t.join('<br>')\n\t\t\t\t}\n\t\t\t</div>\n\t\t`;\n\n\t\tconst showMoreLabel = Tag.render`\n\t\t\t<span class=\"bizproc-automation-robot-broken-link-show-more\">\n\t\t\t\t${Loc.getMessage('JS_BIZPROC_AUTOMATION_BROKEN_LINK_MESSAGE_ERROR_MORE_INFO')}\n\t\t\t</span>\n\t\t`;\n\t\tEvent.bindOnce(showMoreLabel, 'click', () => {\n\t\t\tDom.style(moreInfoNode, 'height', `${moreInfoNode.scrollHeight}px`);\n\t\t\tDom.remove(showMoreLabel);\n\t\t});\n\n\t\tconst closeBtn = Tag.render`<span class=\"ui-alert-close-btn\"></span>`;\n\n\t\tconst alert = Tag.render`\n\t\t\t<div class=\"ui-alert ui-alert-warning ui-alert-icon-info\">\n\t\t\t\t<div class=\"ui-alert-message\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<span>${Loc.getMessage('BIZPROC_AUTOMATION_BROKEN_LINK_MESSAGE_ERROR')}</span>\n\t\t\t\t\t\t${showMoreLabel}\n\t\t\t\t\t</div>\n\t\t\t\t\t${moreInfoNode}\n\t\t\t\t</div>\n\t\t\t\t${closeBtn}\n\t\t\t</div>\n\t\t`;\n\n\t\tEvent.bindOnce(closeBtn, 'click', () => {\n\t\t\tDom.remove(alert);\n\t\t});\n\n\t\treturn alert;\n\t}\n\n\tsaveRobotSettings(form, robot, callback, btnNode)\n\t{\n\t\tif (btnNode)\n\t\t{\n\t\t\tDom.addClass(btnNode, 'ui-btn-wait');\n\t\t}\n\n\t\tthis.onBeforeSaveRobotSettings();\n\t\tconst formData = BX.ajax.prepareForm(form);\n\t\tconst robotData = robot.onBeforeSaveRobotSettings(formData);\n\n\t\tconst ajaxUrl = this.#context.ajaxUrl;\n\t\tconst documentSigned = this.#context.signedDocument;\n\t\tajax({\n\t\t\tmethod: 'POST',\n\t\t\tdataType: 'json',\n\t\t\turl: Uri.addParam(\n\t\t\t\tajaxUrl,\n\t\t\t\t{\n\t\t\t\t\tanalyticsLabel: `automation_robot${robot.draft ? '_draft' : ''}_save_${robot.data.Type.toLowerCase()}`,\n\t\t\t\t},\n\t\t\t),\n\t\t\tdata: {\n\t\t\t\tajax_action: 'save_robot_settings',\n\t\t\t\tdocument_signed: documentSigned,\n\t\t\t\trobot_json: Helper.toJsonString(robot.serialize()),\n\t\t\t\tform_data_json: Helper.toJsonString({ ...formData.data, ...robotData }),\n\t\t\t\tform_data: formData.data, /** @bug 0135641 */\n\t\t\t},\n\t\t\tonsuccess: (response) => {\n\t\t\t\tif (btnNode)\n\t\t\t\t{\n\t\t\t\t\tDom.removeClass(btnNode, 'ui-btn-wait');\n\t\t\t\t}\n\n\t\t\t\tif (response.SUCCESS)\n\t\t\t\t{\n\t\t\t\t\trobot.updateData(response.DATA.robot);\n\t\t\t\t\tthis.setDelaySettingsFromForm(formData.data, robot);\n\t\t\t\t\tthis.setConditionSettingsFromForm(formData.data, robot);\n\n\t\t\t\t\trobot.draft = false;\n\n\t\t\t\t\trobot.reInit();\n\t\t\t\t\tthis.markModified();\n\t\t\t\t\tif (callback)\n\t\t\t\t\t{\n\t\t\t\t\t\tcallback(response.DATA);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\talert(response.ERRORS[0]);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n\n\tserialize()\n\t{\n\t\tconst data = Runtime.clone(this.#data);\n\t\tdata.IS_EXTERNAL_MODIFIED = this.isExternalModified() ? 1 : 0;\n\t\tdata.ROBOTS = [];\n\n\t\tfor (let i = 0; i < this.#robots.length; ++i)\n\t\t{\n\t\t\tdata.ROBOTS.push(this.#robots[i].serialize());\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tisExternalModified()\n\t{\n\t\treturn (this.externalModified === true);\n\t}\n\n\tmarkExternalModified(modified)\n\t{\n\t\tthis.externalModified = modified !== false;\n\t}\n\n\tgetRobotById(id)\n\t{\n\t\treturn this.#robots.find((robot) => robot.getId() === id);\n\t}\n\n\tisModified()\n\t{\n\t\treturn this.modified;\n\t}\n\n\tmarkModified(modified)\n\t{\n\t\tthis.modified = modified !== false;\n\n\t\tif (this.modified)\n\t\t{\n\t\t\tthis.emit('Template:modified');\n\t\t}\n\t}\n\n\tgetConstants(): []\n\t{\n\t\tconst constants = [];\n\n\t\tObject.keys(this.#data.CONSTANTS).forEach((id) => {\n\t\t\tconst constant = Runtime.clone(this.#data.CONSTANTS[id]);\n\n\t\t\tconstant.Id = id;\n\t\t\tconstant.ObjectId = 'Constant';\n\t\t\tconstant.SystemExpression = `{=Constant:${id}}`;\n\t\t\tconstant.Expression = `{{~&:${id}}}`;\n\t\t\tconstant.SuperTitle = Loc.getMessage('BIZPROC_AUTOMATION_CMP_TEMPLATE_CONSTANTS_LIST');\n\n\t\t\tconstants.push(constant);\n\t\t});\n\n\t\treturn constants;\n\t}\n\n\tgetConstant(id)\n\t{\n\t\tconst constants = this.getConstants();\n\n\t\tfor (const constant of constants)\n\t\t{\n\t\t\tif (constant.Id === id)\n\t\t\t{\n\t\t\t\treturn constant;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\taddConstant(property)\n\t{\n\t\tconst id = property.Id || this.generatePropertyId('Constant', this.#data.CONSTANTS);\n\n\t\tif (this.#data.CONSTANTS[id])\n\t\t{\n\t\t\tthrow `Constant with id \"${id}\" is already exists`;\n\t\t}\n\n\t\tthis.#data.CONSTANTS[id] = property;\n\n\t\tthis.emit('Template:constant:add');\n\t\t// if (this.component)\n\t\t// {\n\t\t// \tBX.onCustomEvent(this.component, 'onTemplateConstantAdd', [this, this.getConstant(id)]);\n\t\t// }\n\n\t\treturn this.getConstant(id);\n\t}\n\n\tupdateConstant(id, property)\n\t{\n\t\tif (!this.#data.CONSTANTS[id])\n\t\t{\n\t\t\tthrow `Constant with id \"${id}\" does not exists`;\n\t\t}\n\n\t\t//TODO: only Description yet.\n\t\tthis.#data.CONSTANTS[id].Description = property.Description;\n\n\t\tthis.emit('Template:constant:update', { constant: this.getConstant(id) });\n\t\t// if (this.component)\n\t\t// {\n\t\t// \tBX.onCustomEvent(this.component, 'onTemplateConstantUpdate', [this, this.getConstant(id)]);\n\t\t// }\n\n\t\treturn this.getConstant(id);\n\t}\n\n\tdeleteConstant(id)\n\t{\n\t\tdelete this.#data.CONSTANTS[id];\n\n\t\treturn true;\n\t}\n\n\tsetConstantValue(id, value)\n\t{\n\t\tif (this.#data.CONSTANTS[id])\n\t\t{\n\t\t\tthis.#data.CONSTANTS[id].Default = value;\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tgetParameters()\n\t{\n\t\tconst params = [];\n\n\t\tObject.keys(this.#data.PARAMETERS).forEach((id) => {\n\t\t\tconst param = Runtime.clone(this.#data.PARAMETERS[id]);\n\n\t\t\tparam.Id = id;\n\t\t\tparam.ObjectId = 'Template';\n\t\t\tparam.SystemExpression = `{=Template:${id}}`;\n\t\t\tparam.Expression = `{{~*:${id}}}`;\n\n\t\t\tparams.push(param);\n\t\t});\n\n\t\treturn params;\n\t}\n\n\tgetParameter(id)\n\t{\n\t\tconst params = this.getParameters();\n\n\t\tfor (const param of params)\n\t\t{\n\t\t\tif (param.Id === id)\n\t\t\t{\n\t\t\t\treturn param;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\taddParameter(property)\n\t{\n\t\tconst id = property.Id || this.generatePropertyId('Parameter', this.#data.PARAMETERS);\n\n\t\tif (this.#data.PARAMETERS[id])\n\t\t{\n\t\t\tthrow `Parameter with id \"${id}\" is already exists`;\n\t\t}\n\n\t\tthis.#data.PARAMETERS[id] = property;\n\n\t\tthis.emit('Template:parameter:add', { parameter: this.getParameter(id) });\n\t\t// if (this.component)\n\t\t// {\n\t\t// \tBX.onCustomEvent(this.component, 'onTemplateParameterAdd', [this, this.getParameter(id)]);\n\t\t// }\n\n\t\treturn this.getParameter(id);\n\t}\n\n\tupdateParameter(id, property)\n\t{\n\t\tif (!this.#data.PARAMETERS[id])\n\t\t{\n\t\t\tthrow `Parameter with id \"${id}\" does not exists`;\n\t\t}\n\n\t\t// TODO: only Description yet.\n\t\tthis.#data.PARAMETERS[id].Description = property.Description;\n\n\t\tthis.emit('Template:parameter:update', { parameter: this.getParameter(id) });\n\t\t// if (this.component)\n\t\t// {\n\t\t// \tBX.onCustomEvent(this.component, 'onTemplateParameterUpdate', [this, this.getParameter(id)]);\n\t\t// }\n\n\t\treturn this.getParameter(id);\n\t}\n\n\tdeleteParameter(id)\n\t{\n\t\tdelete this.#data.PARAMETERS[id];\n\n\t\treturn true;\n\t}\n\n\tsetParameterValue(id, value)\n\t{\n\t\tif (this.#data.PARAMETERS[id])\n\t\t{\n\t\t\tthis.#data.PARAMETERS[id].Default = value;\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tgetVariables(): []\n\t{\n\t\tconst variables = [];\n\n\t\tObject.keys(this.#data.VARIABLES).forEach((id) => {\n\t\t\tconst variable = Runtime.clone(this.#data.VARIABLES[id]);\n\n\t\t\tvariable.Id = id;\n\t\t\tvariable.ObjectId = 'Variable';\n\t\t\tvariable.SystemExpression = `{=Variable:${id}}`;\n\t\t\tvariable.Expression = `{=Variable:${id}}`;\n\n\t\t\tvariables.push(variable);\n\t\t});\n\n\t\treturn variables;\n\t}\n\n\tgeneratePropertyId(prefix, existsList)\n\t{\n\t\tlet index;\n\t\tfor (index = 1; index <= 1000; ++index)\n\t\t{\n\t\t\tif (!existsList[prefix + index])\n\t\t\t{\n\t\t\t\tbreak; // found\n\t\t\t}\n\t\t}\n\n\t\treturn prefix + index;\n\t}\n\n\tcollectUsages()\n\t{\n\t\tconst usages = {\n\t\t\tDocument: new Set(),\n\t\t\tConstant: new Set(),\n\t\t\tVariable: new Set(),\n\t\t\tParameter: new Set(),\n\t\t\tGlobalConstant: new Set(),\n\t\t\tGlobalVariable: new Set(),\n\t\t\tActivity: new Set(),\n\t\t};\n\n\t\tthis.#robots.forEach((robot) => {\n\t\t\tconst robotUsages = robot.collectUsages();\n\n\t\t\tObject.keys(usages).forEach((key) => {\n\t\t\t\trobotUsages[key].forEach((usage) => {\n\t\t\t\t\tif (!usages[key].has(usage))\n\t\t\t\t\t{\n\t\t\t\t\t\tusages[key].add(usage);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\n\t\treturn usages;\n\t}\n\n\tsubscribeRobotEvents(eventName: string, listener: (BaseEvent) => void): this\n\t{\n\t\tthis.#robots.forEach((robot) => robot.subscribe(eventName, listener));\n\n\t\treturn this;\n\t}\n\n\tunsubscribeRobotEvents(eventName: string, listener: (BaseEvent) => void)\n\t{\n\t\tthis.#robots.forEach((robot) => robot.unsubscribe(eventName, listener));\n\n\t\treturn this;\n\t}\n\n\tgetRobotDescription(type: string): ?object\n\t{\n\t\treturn this.#context.availableRobots.find((item) => item.CLASS === type);\n\t}\n\n\tget globalConstants(): []\n\t{\n\t\treturn this.#context.automationGlobals ? this.#context.automationGlobals.globalConstants : [];\n\t}\n\n\tget globalVariables(): []\n\t{\n\t\treturn this.#context.automationGlobals ? this.#context.automationGlobals.globalVariables : [];\n\t}\n}\n","import { Type, Runtime } from 'main.core';\n\nexport class Document\n{\n\t#rawType: Array<string>;\n\t#id: number;\n\t#title: ?string;\n\t#categoryId: ?number;\n\t#statusList: ?Array<Object>;\n\t#currentStatusIndex: number;\n\n\t#fields: ?Array<Object>;\n\n\tconstructor(options: {\n\t\trawDocumentType: Array<string>,\n\t\tdocumentId: number,\n\t\tcategoryId?: number,\n\t\tstatusId?: string,\n\n\t\tstatusList: Array<Object>,\n\n\t\tdocumentFields?: Array<Object>;\n\t\ttitle?: string,\n\t})\n\t{\n\t\tthis.#rawType = options.rawDocumentType;\n\t\tthis.#id = options.documentId;\n\t\tthis.#title = options.title;\n\t\tthis.#categoryId = options.categoryId;\n\n\t\tthis.#statusList = [];\n\t\tthis.#currentStatusIndex = 0;\n\t\tif (Type.isArray(options.statusList))\n\t\t{\n\t\t\tthis.#statusList = options.statusList.map((status) => {\n\t\t\t\tstatus.STATUS_ID = String(status.STATUS_ID);\n\n\t\t\t\treturn status;\n\t\t\t})\n\t\t\tthis.#currentStatusIndex = this.#statusList.findIndex(status => status.STATUS_ID === options.statusId)\n\t\t}\n\t\telse if (Type.isStringFilled(options.statusId))\n\t\t{\n\t\t\tthis.#statusList.push(options.statusId);\n\t\t}\n\n\t\tif (this.#currentStatusIndex < 0)\n\t\t{\n\t\t\tthis.#currentStatusIndex = 0;\n\t\t}\n\n\t\tthis.#fields = Type.isArray(options.documentFields) ? options.documentFields : [];\n\t}\n\n\tclone(): this\n\t{\n\t\treturn new Document({\n\t\t\trawDocumentType: Runtime.clone(this.#rawType),\n\t\t\tdocumentId: this.#id,\n\t\t\tcategoryId: this.#categoryId,\n\t\t\tstatusId: this.getCurrentStatusId(),\n\n\t\t\tstatusList: Runtime.clone(this.#statusList),\n\n\t\t\tdocumentFields: Runtime.clone(this.#fields),\n\t\t\ttitle: this.#title,\n\t\t});\n\t}\n\n\tget title(): ?string\n\t{\n\t\treturn this.#title;\n\t}\n\n\tgetId(): number\n\t{\n\t\treturn this.#id;\n\t}\n\n\tgetRawType(): Array<string>\n\t{\n\t\treturn this.#rawType;\n\t}\n\n\tgetCategoryId(): ?number\n\t{\n\t\treturn this.#categoryId;\n\t}\n\n\tgetCurrentStatusId(): ?string\n\t{\n\t\tconst documentStatus = this.#statusList[this.#currentStatusIndex]?.STATUS_ID;\n\n\t\treturn !Type.isNil(documentStatus) ? String(documentStatus) : documentStatus;\n\t}\n\n\tgetSortedStatusId(index: number): ?string\n\t{\n\t\tif (index >= 0 && index < this.#statusList.length)\n\t\t{\n\t\t\treturn this.#statusList[index].STATUS_ID;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tgetNextStatusIdList(): Array<string>\n\t{\n\t\treturn this.#statusList.slice(this.#currentStatusIndex + 1).map(status => status.STATUS_ID);\n\t}\n\n\tgetPreviousStatusIdList(): Array<string>\n\t{\n\t\treturn this.#statusList.slice(0, this.#currentStatusIndex).map(status => status.STATUS_ID);\n\t}\n\n\tsetStatus(statusId: string): Document\n\t{\n\t\tconst newStatusId = this.#statusList.findIndex(status => status.STATUS_ID === statusId);\n\t\tif (newStatusId >= 0)\n\t\t{\n\t\t\tthis.#currentStatusIndex = newStatusId;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetFields(): Array<Object>\n\t{\n\t\treturn this.#fields;\n\t}\n\n\tsetFields(documentFields: Array<object>): this\n\t{\n\t\tthis.#fields = documentFields;\n\n\t\treturn this;\n\t}\n\n\tsetStatusList(statusList: Array<Object>): this\n\t{\n\t\tif (Type.isArrayFilled(statusList))\n\t\t{\n\t\t\tthis.#statusList = statusList;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tget statusList(): ?Array<Object>\n\t{\n\t\treturn this.#statusList;\n\t}\n}","import { Type } from 'main.core';\nimport { Operator } from 'bizproc.condition';\n\nexport class Condition\n{\n\t#object: string;\n\t#field: string;\n\t#operator: string;\n\t#value: string;\n\n\tparentGroup;\n\n\tconstructor(params: ?Object, group)\n\t{\n\t\tthis.#object = 'Document';\n\t\tthis.#field = '';\n\t\tthis.#operator = '!empty';\n\t\tthis.#value = '';\n\n\t\tthis.parentGroup = null;\n\n\t\tif (Type.isPlainObject(params))\n\t\t{\n\t\t\tif (params.object)\n\t\t\t{\n\t\t\t\tthis.setObject(params.object);\n\t\t\t}\n\n\t\t\tif (params.field)\n\t\t\t{\n\t\t\t\tthis.setField(params.field);\n\t\t\t}\n\n\t\t\tif (params.operator)\n\t\t\t{\n\t\t\t\tthis.setOperator(params.operator);\n\t\t\t}\n\n\t\t\tif ('value' in params)\n\t\t\t{\n\t\t\t\tthis.setValue(params.value);\n\t\t\t}\n\t\t}\n\n\t\tif (group)\n\t\t{\n\t\t\tthis.parentGroup = group;\n\t\t}\n\t}\n\n\tclone(): Condition\n\t{\n\t\treturn new Condition(\n\t\t\t{\n\t\t\t\tobject: this.#object,\n\t\t\t\tfield: this.#field,\n\t\t\t\toperator: this.#operator,\n\t\t\t\tvalue: this.#value,\n\t\t\t},\n\t\t\tthis.parentGroup,\n\t\t);\n\t}\n\n\tsetObject(object)\n\t{\n\t\tif (Type.isStringFilled(object))\n\t\t{\n\t\t\tthis.#object = object;\n\t\t}\n\t}\n\n\tget object()\n\t{\n\t\treturn this.#object;\n\t}\n\n\tsetField(field)\n\t{\n\t\tif (Type.isStringFilled(field))\n\t\t{\n\t\t\tthis.#field = field;\n\t\t}\n\t}\n\n\tget field()\n\t{\n\t\treturn this.#field;\n\t}\n\n\tsetOperator(operator)\n\t{\n\t\tthis.#operator = operator ?? Operator.EQUAL;\n\t}\n\n\tget operator(): string\n\t{\n\t\treturn this.#operator;\n\t}\n\n\tsetValue(value)\n\t{\n\t\tthis.#value = value;\n\t\tif (this.#operator === Operator.EQUAL && this.#value === '')\n\t\t{\n\t\t\tthis.#operator = 'empty';\n\t\t}\n\t\telse if (this.#operator === Operator.NOT_EQUAL && this.#value === '')\n\t\t{\n\t\t\tthis.#operator = '!empty';\n\t\t}\n\t}\n\n\tget value()\n\t{\n\t\treturn this.#value;\n\t}\n\n\tserialize(): Object\n\t{\n\t\treturn {\n\t\t\tobject: this.#object,\n\t\t\tfield: this.#field,\n\t\t\toperator: this.#operator,\n\t\t\tvalue: this.#value,\n\t\t};\n\t}\n}\n","import { Type, Loc } from 'main.core';\nimport { Condition } from './condition';\nimport { ConditionNames } from './types';\nimport { Operator } from 'bizproc.condition';\n\nexport class ConditionGroup\n{\n\tstatic CONDITION_TYPE = {\n\t\tField: 'field',\n\t\tMixed: 'mixed',\n\t};\n\n\tstatic JOINER = {\n\t\tAnd: 'AND',\n\t\tOr: 'OR',\n\n\t\tmessage(type)\n\t\t{\n\t\t\tif (type === this.Or)\n\t\t\t{\n\t\t\t\treturn Loc.getMessage('BIZPROC_AUTOMATION_ROBOT_CONDITION_OR');\n\t\t\t}\n\n\t\t\treturn Loc.getMessage('BIZPROC_AUTOMATION_ROBOT_CONDITION_AND');\n\t\t},\n\t};\n\n\t#type: string;\n\t#items: Array<[Condition, string]>;\n\t#activityNames: ?ConditionNames;\n\n\tconstructor(params: ?Object)\n\t{\n\t\tthis.#type = ConditionGroup.CONDITION_TYPE.Field;\n\t\tthis.#items = [];\n\n\t\tif (Type.isPlainObject(params))\n\t\t{\n\t\t\tif (params.type)\n\t\t\t{\n\t\t\t\tthis.#type = params.type;\n\t\t\t}\n\n\t\t\tif (Type.isArray(params.items))\n\t\t\t{\n\t\t\t\tparams.items.forEach((item) => {\n\t\t\t\t\tconst condition = new Condition(item[0], this);\n\t\t\t\t\tthis.addItem(condition, item[1]);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (Type.isPlainObject(params.activityNames))\n\t\t\t{\n\t\t\t\tthis.#activityNames = params.activityNames;\n\t\t\t}\n\t\t}\n\t}\n\n\tclone()\n\t{\n\t\tconst clonedGroup = new ConditionGroup({ type: this.#type });\n\t\tthis.#items.forEach(([condition, joiner]) => {\n\t\t\tconst clonedCondition = condition.clone();\n\t\t\tclonedCondition.parentGroup = clonedGroup;\n\n\t\t\tclonedGroup.addItem(clonedCondition, joiner);\n\t\t});\n\n\t\treturn clonedGroup;\n\t}\n\n\tget conditionNamesList(): Array<string>\n\t{\n\t\tif (Type.isPlainObject(this.#activityNames))\n\t\t{\n\t\t\treturn [\n\t\t\t\tthis.#activityNames.Activity,\n\t\t\t\tthis.#activityNames.Branch1,\n\t\t\t\tthis.#activityNames.Branch2,\n\t\t\t];\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tget type()\n\t{\n\t\treturn this.#type;\n\t}\n\n\tset type(type: string)\n\t{\n\t\tif (Object.values(ConditionGroup.CONDITION_TYPE).includes(type))\n\t\t{\n\t\t\tthis.#type = type;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tget items()\n\t{\n\t\treturn this.#items;\n\t}\n\n\tstatic createFromForm(formFields, prefix)\n\t{\n\t\tconst conditionGroup = new ConditionGroup();\n\t\tif (!prefix)\n\t\t{\n\t\t\tprefix = 'condition_';\n\t\t}\n\n\t\tif (Type.isArray(formFields[prefix + 'field']))\n\t\t{\n\t\t\tfor (let i = 0, valueIndex = 0; i < formFields[prefix + 'field'].length; ++i, ++valueIndex)\n\t\t\t{\n\t\t\t\tif (formFields[prefix + 'field'][i] === '')\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst condition = new Condition({}, conditionGroup);\n\t\t\t\tcondition.setObject(formFields[prefix + 'object'][i]);\n\t\t\t\tcondition.setField(formFields[prefix + 'field'][i]);\n\t\t\t\tcondition.setOperator(formFields[prefix + 'operator'][i]);\n\n\t\t\t\tconst value = (\n\t\t\t\t\tcondition.operator === Operator.BETWEEN\n\t\t\t\t\t\t? [formFields[prefix + 'value'][valueIndex], formFields[prefix + 'value'][valueIndex + 1]]\n\t\t\t\t\t\t: formFields[prefix + 'value'][valueIndex]\n\t\t\t\t);\n\t\t\t\tcondition.setValue(value);\n\n\t\t\t\tlet joiner = ConditionGroup.JOINER.And;\n\t\t\t\tif (formFields[prefix + 'joiner'] && formFields[prefix + 'joiner'][i] === ConditionGroup.JOINER.Or)\n\t\t\t\t{\n\t\t\t\t\tjoiner = ConditionGroup.JOINER.Or;\n\t\t\t\t}\n\n\t\t\t\tif (condition.operator === Operator.BETWEEN)\n\t\t\t\t{\n\t\t\t\t\tvalueIndex++;\n\t\t\t\t}\n\n\t\t\t\tconditionGroup.addItem(condition, joiner);\n\t\t\t}\n\t\t}\n\n\t\treturn conditionGroup;\n\t}\n\n\taddItem(condition, joiner)\n\t{\n\t\tthis.#items.push([condition, joiner]);\n\t}\n\n\tgetItems(): Array<Array<Condition, string>>\n\t{\n\t\treturn this.#items;\n\t}\n\n\tserialize()\n\t{\n\t\tconst itemsArray = [];\n\n\t\tthis.#items.forEach((item) => {\n\t\t\tif (item.field !== '')\n\t\t\t{\n\t\t\t\titemsArray.push([item[0].serialize(), item[1]]);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\ttype: this.#type,\n\t\t\titems: itemsArray,\n\t\t\tactivityNames: this.#activityNames,\n\t\t};\n\t}\n}\n","import {\n\tCondition,\n\tConditionGroup,\n\tDesigner,\n\tgetGlobalContext,\n\tInlineSelectorCondition,\n\tSelectorContext,\n\tSelectorManager,\n} from 'bizproc.automation';\nimport { Dom, Type, Event, Loc, Runtime, Tag, Text } from 'main.core';\nimport { Popup } from 'main.popup';\nimport { Button, CancelButton } from 'ui.buttons';\n\nimport type { ConditionSelectorOptions } from './types';\nimport { BaseEvent, EventEmitter } from 'main.core.events';\nimport { Operator } from 'bizproc.condition';\n\nimport 'ui.icon-set.main';\nimport 'ui.icon-set.actions';\n\nexport class ConditionSelector extends EventEmitter\n{\n\t#condition: ?Condition;\n\t#fields: Array<Object>;\n\t#joiner: string;\n\t#fieldPrefix: string;\n\t#rootGroupTitle: ?string;\n\t#onOpenFieldMenu: ?(BaseEvent) => void;\n\t#onOpenMenu: ?(BaseEvent) => void;\n\t#showValuesSelector: boolean;\n\n\tnode: ?HTMLElement;\n\tobjectNode: ?HTMLElement;\n\tfieldNode: ?HTMLElement;\n\tjoinerNode: ?HTMLElement;\n\tlabelNode: ?HTMLElement;\n\tvalueNode: ?HTMLElement;\n\t#valueNode2: ?HTMLElement = null;\n\n\tpopup: Popup;\n\tfieldDialog: ?InlineSelectorCondition;\n\t#selectedField;\n\n\tconstructor(condition, options: ?ConditionSelectorOptions)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Bizproc.Automation.Condition');\n\n\t\tthis.#condition = condition;\n\t\tthis.#fields = [];\n\t\tthis.#joiner = ConditionGroup.JOINER.And;\n\t\tthis.#fieldPrefix = 'condition_';\n\n\t\tif (Type.isPlainObject(options))\n\t\t{\n\t\t\tif (Type.isArray(options.fields))\n\t\t\t{\n\t\t\t\tthis.#fields = options.fields.map((field) => {\n\t\t\t\t\tfield.ObjectId = 'Document';\n\n\t\t\t\t\treturn field;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (options.joiner && options.joiner === ConditionGroup.JOINER.Or)\n\t\t\t{\n\t\t\t\tthis.#joiner = ConditionGroup.JOINER.Or;\n\t\t\t}\n\n\t\t\tif (options.fieldPrefix)\n\t\t\t{\n\t\t\t\tthis.#fieldPrefix = options.fieldPrefix;\n\t\t\t}\n\n\t\t\tthis.#rootGroupTitle = options.rootGroupTitle;\n\t\t\tthis.#onOpenFieldMenu = options.onOpenFieldMenu;\n\t\t\tthis.#onOpenMenu = options.onOpenMenu;\n\t\t\tthis.#showValuesSelector = options.showValuesSelector ?? true;\n\t\t}\n\t}\n\n\tcreateNode()\n\t{\n\t\tconst value = Type.isArrayFilled(this.#condition.value) ? this.#condition.value[0] : this.#condition.value;\n\t\tconst conditionValueNode = this.#createValueNode(value);\n\n\t\tconst conditionValueNode2 = (\n\t\t\tthis.#condition.operator === Operator.BETWEEN\n\t\t\t\t? this.#createValueNode(\n\t\t\t\t\tType.isArrayFilled(this.#condition.value) && this.#condition.value.length > 1\n\t\t\t\t\t\t? this.#condition.value[1]\n\t\t\t\t\t\t: '',\n\t\t\t\t)\n\t\t\t\t: ''\n\t\t);\n\n\t\tconst {\n\t\t\troot,\n\t\t\tconditionObjectNode,\n\t\t\tconditionFieldNode,\n\t\t\tconditionOperatorNode,\n\t\t\tlabelNode,\n\t\t} = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-settings__condition-selector ui-draggable--item\">\n\t\t\t\t<div class=\"bizproc-automation-popup-settings__condition-item\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tref=\"conditionObjectNode\"\n\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\tname=\"${Text.encode(`${this.#fieldPrefix}object[]`)}\"\n\t\t\t\t\t\tvalue=\"${Text.encode(this.#condition.object)}\"\n\t\t\t\t\t/>\n\t\t\t\t\t<input\n\t\t\t\t\t\tref=\"conditionFieldNode\"\n\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\tname=\"${Text.encode(`${this.#fieldPrefix}field[]`)}\"\n\t\t\t\t\t\tvalue=\"${Text.encode(this.#condition.field)}\"\n\t\t\t\t\t/>\n\t\t\t\t\t<input\n\t\t\t\t\t\tref=\"conditionOperatorNode\"\n\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\tname=\"${Text.encode(`${this.#fieldPrefix}operator[]`)}\"\n\t\t\t\t\t\tvalue=\"${Text.encode(this.#condition.operator)}\"\n\t\t\t\t\t/>\n\t\t\t\t\t${conditionValueNode}\n\t\t\t\t\t${conditionValueNode2}\n\t\t\t\t\t<div class=\"bizproc-automation-popup-settings__condition-item_draggable\">\n\t\t\t\t\t\t<div class=\"ui-icon-set --more-points\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tref=\"labelNode\"\n\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings__condition-item_content\"\n\t\t\t\t\t></div>\n\t\t\t\t\t${this.#createRemoveButton()}\n\t\t\t\t</div>\n\t\t\t\t${this.#createJoinerSwitcher()}\n\t\t\t</div>\n\t\t`;\n\n\t\tthis.node = root;\n\t\tthis.objectNode = conditionObjectNode;\n\t\tthis.fieldNode = conditionFieldNode;\n\t\tthis.operatorNode = conditionOperatorNode;\n\t\tthis.valueNode = conditionValueNode;\n\t\tthis.#valueNode2 = conditionValueNode2 === '' ? null : conditionValueNode2;\n\t\tthis.labelNode = labelNode;\n\n\t\tthis.setLabelText();\n\t\tthis.bindLabelNode();\n\n\t\treturn this.node;\n\t}\n\n\t#createValueNode(value: string): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<input\n\t\t\t\ttype=\"hidden\"\n\t\t\t\tname=\"${Text.encode(`${this.#fieldPrefix}value[]`)}\"\n\t\t\t\tvalue=\"${Text.encode(value)}\"\n\t\t\t>\n\t\t`;\n\t}\n\n\t#createRemoveButton(): HTMLDivElement\n\t{\n\t\tconst { root, removeButtonNode } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-settings__condition-item_close\">\n\t\t\t\t<div ref=\"removeButtonNode\" class=\"ui-icon-set --cross-20\"></div>\n\t\t\t</div>\n\t\t`;\n\t\tEvent.bind(removeButtonNode, 'click', this.removeCondition.bind(this));\n\n\t\treturn root;\n\t}\n\n\t#createJoinerSwitcher(): HTMLDivElement\n\t{\n\t\tconst { root, switcherBtnAnd, switcherBtnOr, inputNode } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-settings__condition-switcher\">\n\t\t\t\t<div class=\"bizproc-automation-popup-settings__condition-switcher_wrapper\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tref=\"switcherBtnAnd\"\n\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings__condition-switcher_btn ${this.#joiner === 'AND' ? '--active' : ''}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_ROBOT_CONDITION_AND')}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span\n\t\t\t\t\t\tref=\"switcherBtnOr\"\n\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings__condition-switcher_btn ${this.#joiner === 'OR' ? '--active' : ''}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_ROBOT_CONDITION_OR')}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<input\n\t\t\t\t\tref=\"inputNode\"\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tname=\"${Text.encode(`${this.#fieldPrefix}joiner[]`)}\"\n\t\t\t\t\tvalue=\"${Text.encode(this.#joiner)}\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t`;\n\t\tthis.joinerNode = inputNode;\n\n\t\tEvent.bind(root, 'click', () => {\n\t\t\tthis.#joiner = (this.#joiner === ConditionGroup.JOINER.Or ? ConditionGroup.JOINER.And : ConditionGroup.JOINER.Or);\n\t\t\tif (this.joinerNode)\n\t\t\t{\n\t\t\t\tthis.joinerNode.value = this.#joiner;\n\t\t\t}\n\n\t\t\tDom.toggleClass(switcherBtnOr, '--active');\n\t\t\tDom.toggleClass(switcherBtnAnd, '--active');\n\t\t});\n\n\t\treturn root;\n\t}\n\n\tinit(condition: Condition)\n\t{\n\t\tthis.#condition = condition;\n\t\tthis.setLabelText();\n\t\tthis.bindLabelNode();\n\t}\n\n\tsetLabelText()\n\t{\n\t\tif (!this.labelNode || !this.#condition)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tDom.clean(this.labelNode);\n\n\t\tif (this.#condition.field === '')\n\t\t{\n\t\t\tDom.append(\n\t\t\t\tTag.render`\n\t\t\t\t\t<span class=\"bizproc-automation-popup-settings__condition-text\">\n\t\t\t\t\t\t${Text.encode(this.getOperatorLabel(Operator.EMPTY))}\n\t\t\t\t\t</span>\n\t\t\t\t`,\n\t\t\t\tthis.labelNode,\n\t\t\t);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst field = this.getField(this.#condition.object, this.#condition.field) || '?';\n\t\t\tconst valueLabel = this.#getValueLabel(field);\n\n\t\t\tDom.append(\n\t\t\t\tTag.render`<span class=\"bizproc-automation-popup-settings__condition-text\">${Text.encode(field.Name)}</span>`,\n\t\t\t\tthis.labelNode,\n\t\t\t);\n\t\t\tDom.append(\n\t\t\t\tTag.render`\n\t\t\t\t\t<span class=\"bizproc-automation-popup-settings__condition-text\">\n\t\t\t\t\t\t${Text.encode(this.getOperatorLabel(this.#condition.operator))}\n\t\t\t\t\t</span>\n\t\t\t\t`,\n\t\t\t\tthis.labelNode,\n\t\t\t);\n\n\t\t\tif (valueLabel)\n\t\t\t{\n\t\t\t\tDom.append(\n\t\t\t\t\tTag.render`<span class=\"bizproc-automation-popup-settings__condition-text\">${Text.encode(valueLabel)}</span>`,\n\t\t\t\t\tthis.labelNode,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t#getValueLabel(field): ?string\n\t{\n\t\tconst operator = this.#condition.operator;\n\t\tconst value = this.#condition.value;\n\n\t\tif (operator === 'between')\n\t\t{\n\t\t\treturn (\n\t\t\t\tLoc.getMessage(\n\t\t\t\t\t'BIZPROC_AUTOMATION_ROBOT_CONDITION_BETWEEN_VALUE_1',\n\t\t\t\t\t{\n\t\t\t\t\t\t'#VALUE_1#': BX.Bizproc.FieldType.formatValuePrintable(\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tType.isArrayFilled(value) ? value[0] : value,\n\t\t\t\t\t\t),\n\t\t\t\t\t\t'#VALUE_2#': BX.Bizproc.FieldType.formatValuePrintable(\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tType.isArrayFilled(value) ? value[1] : '',\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tif (!operator.includes('empty'))\n\t\t{\n\t\t\treturn BX.Bizproc.FieldType.formatValuePrintable(field, value);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tbindLabelNode()\n\t{\n\t\tif (this.labelNode)\n\t\t{\n\t\t\tEvent.bind(this.labelNode, 'click', this.onLabelClick.bind(this));\n\t\t}\n\t}\n\n\tonLabelClick()\n\t{\n\t\tthis.showPopup();\n\t}\n\n\tshowPopup()\n\t{\n\t\tif (this.popup)\n\t\t{\n\t\t\tthis.popup.show();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst fields = this.filterFields();\n\n\t\tconst objectSelect = Tag.render`<input type=\"hidden\" class=\"bizproc-automation-popup-settings-dropdown\"/>`;\n\t\tconst { root: fieldSelectLabel, fieldSelect } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-settings-dropdown\" readonly=\"readonly\">\n\t\t\t\t<input ref=\"fieldSelect\" type=\"hidden\" class=\"bizproc-automation-popup-settings-dropdown\"/>\n\t\t\t</div>\n\t\t`;\n\n\t\tEvent.bind(\n\t\t\tfieldSelectLabel,\n\t\t\t'click',\n\t\t\tthis.onFieldSelectorClick.bind(this, fieldSelectLabel, fieldSelect, fields, objectSelect),\n\t\t);\n\n\t\tlet selectedField = this.getField(this.#condition.object, this.#condition.field);\n\t\tif (!this.#condition.field)\n\t\t{\n\t\t\tselectedField = fields[0];\n\t\t}\n\n\t\tthis.#selectedField = selectedField;\n\n\t\tfieldSelect.value = selectedField.Id;\n\t\tobjectSelect.value = selectedField.ObjectId;\n\t\tfieldSelectLabel.textContent = selectedField.Name;\n\n\t\tconst valueInput = this.#getValueNode(selectedField, this.#condition.value, this.#condition.operator);\n\t\tconst valueWrapper = Tag.render`<div class=\"bizproc-automation-popup-settings\">${valueInput}</div>`;\n\n\t\tconst operatorSelect = this.createOperatorNode(selectedField, valueWrapper);\n\t\tif (this.#condition.field !== '')\n\t\t{\n\t\t\toperatorSelect.value = this.#condition.operator;\n\t\t}\n\n\t\tconst { root: form, operatorWrapper } = Tag.render`\n\t\t\t<form class=\"bizproc-automation-popup-select-block\">\n\t\t\t\t<div class=\"bizproc-automation-popup-settings\">${fieldSelectLabel}</div>\n\t\t\t\t<div ref=\"operatorWrapper\" class=\"bizproc-automation-popup-settings\">${operatorSelect}</div>\n\t\t\t\t${valueWrapper}\n\t\t\t</form>\n\t\t`;\n\t\tEvent.bind(fieldSelect, 'change', this.onFieldChange.bind(\n\t\t\tthis,\n\t\t\tfieldSelect,\n\t\t\toperatorWrapper,\n\t\t\tvalueWrapper,\n\t\t\tobjectSelect,\n\t\t));\n\n\t\tthis.popup = new Popup({\n\t\t\tid: 'bizproc-automation-popup-set',\n\t\t\tbindElement: this.labelNode,\n\t\t\tcontent: form,\n\t\t\tcloseByEsc: true,\n\t\t\tbuttons: [\n\t\t\t\tnew Button({\n\t\t\t\t\tcolor: Button.Color.PRIMARY,\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_JS_AUTOMATION_CHOOSE_BUTTON_CAPS'),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.#condition.setObject(objectSelect.value);\n\t\t\t\t\t\tthis.#condition.setField(fieldSelect.value);\n\t\t\t\t\t\tthis.#condition.setOperator(operatorWrapper.firstChild.value);\n\n\t\t\t\t\t\tconst valueInputs = valueWrapper.querySelectorAll(`[name^=\"${this.#fieldPrefix}value\"]`);\n\n\t\t\t\t\t\tif (valueInputs.length > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlet value = valueInputs[valueInputs.length - 1].value;\n\n\t\t\t\t\t\t\tif (this.#condition.operator === Operator.BETWEEN && valueInputs.length > 1)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue = [valueInputs[0].value, valueInputs[1].value];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.#condition.setValue(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.#condition.setValue('');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.setLabelText();\n\n\t\t\t\t\t\tconst field = this.getField(this.#condition.object, this.#condition.field);\n\t\t\t\t\t\tif (field && field.Type === 'UF:address')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst input = valueWrapper.querySelector(`[name=\"${this.#fieldPrefix}value\"]`);\n\t\t\t\t\t\t\tthis.#condition.setValue(input ? input.value : '');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.updateValueNode();\n\t\t\t\t\t\tthis.popup.close();\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tnew CancelButton({\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_JS_AUTOMATION_CANCEL_BUTTON_CAPS'),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.popup.close();\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tclassName: 'bizproc-automation-popup-set',\n\t\t\tcloseIcon: false,\n\t\t\tautoHide: false,\n\t\t\tevents: {\n\t\t\t\tonClose: () => {\n\t\t\t\t\tthis.popup.destroy();\n\t\t\t\t\tif (this.fieldDialog)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.fieldDialog.destroy();\n\t\t\t\t\t\tdelete this.fieldDialog;\n\t\t\t\t\t}\n\n\t\t\t\t\tdelete this.popup;\n\t\t\t\t},\n\t\t\t},\n\t\t\ttitleBar: false,\n\t\t\tangle: true,\n\t\t\toverlay: { backgroundColor: 'transparent' },\n\t\t\toffsetLeft: 45,\n\t\t});\n\n\t\tthis.popup.show();\n\t}\n\n\tonFieldSelectorClick(fieldSelectLabel, fieldSelect, fields, objectSelect, event)\n\t{\n\t\tif (!this.fieldDialog)\n\t\t{\n\t\t\tconst globalContext = getGlobalContext();\n\t\t\tconst fields = Runtime.clone(\n\t\t\t\tType.isArrayFilled(this.#fields) ? this.#fields : globalContext.document.getFields(),\n\t\t\t);\n\n\t\t\tthis.fieldDialog = new InlineSelectorCondition({\n\t\t\t\tcontext: new SelectorContext({\n\t\t\t\t\tfields,\n\t\t\t\t\trootGroupTitle: globalContext.document.title,\n\t\t\t\t}),\n\t\t\t\tcondition: this.#condition,\n\t\t\t});\n\n\t\t\tif (Type.isFunction(this.#onOpenFieldMenu))\n\t\t\t{\n\t\t\t\tthis.fieldDialog.subscribe('onOpenMenu', this.#onOpenFieldMenu);\n\t\t\t}\n\n\t\t\tthis.fieldDialog.subscribe('change', (event) => {\n\t\t\t\tconst property = event.getData().field;\n\t\t\t\tfieldSelectLabel.textContent = property.Name;\n\t\t\t\tfieldSelect.value = property.Id;\n\t\t\t\tobjectSelect.value = property.ObjectId;\n\t\t\t\tBX.fireEvent(fieldSelect, 'change');\n\t\t\t});\n\n\t\t\tthis.fieldDialog.renderTo(fieldSelectLabel);\n\t\t}\n\n\t\tthis.fieldDialog.openMenu(event);\n\t}\n\n\tupdateValueNode()\n\t{\n\t\tif (this.#condition)\n\t\t{\n\t\t\tif (this.objectNode)\n\t\t\t{\n\t\t\t\tthis.objectNode.value = this.#condition.object;\n\t\t\t}\n\n\t\t\tif (this.fieldNode)\n\t\t\t{\n\t\t\t\tthis.fieldNode.value = this.#condition.field;\n\t\t\t}\n\n\t\t\tif (this.operatorNode)\n\t\t\t{\n\t\t\t\tthis.operatorNode.value = this.#condition.operator;\n\t\t\t}\n\n\t\t\tif (this.valueNode)\n\t\t\t{\n\t\t\t\tthis.valueNode.value = (\n\t\t\t\t\tType.isArrayFilled(this.#condition.value)\n\t\t\t\t\t\t? this.#condition.value[0]\n\t\t\t\t\t\t: this.#condition.value\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (this.#condition.operator === Operator.BETWEEN)\n\t\t\t{\n\t\t\t\tconst value2 = this.#condition.value[1] || '';\n\t\t\t\tif (this.#valueNode2)\n\t\t\t\t{\n\t\t\t\t\tthis.#valueNode2.value = value2;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.#valueNode2 = this.#createValueNode(value2);\n\t\t\t\t\tDom.append(this.#valueNode2, this.node);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (Type.isDomNode(this.#valueNode2))\n\t\t\t{\n\t\t\t\tDom.remove(this.#valueNode2);\n\t\t\t\tthis.#valueNode2 = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tonFieldChange(selectNode: Node, conditionWrapper: Node, valueWrapper: Node, objectSelect)\n\t{\n\t\tconst field = this.getField(objectSelect.value, selectNode.value);\n\t\tconst operatorNode = this.createOperatorNode(field, valueWrapper);\n\n\t\t// clean value if field types are different\n\t\tif (field.Type !== this.#selectedField?.Type)\n\t\t{\n\t\t\tDom.clean(valueWrapper);\n\t\t}\n\t\tthis.#selectedField = field;\n\n\t\t// keep selected operator if possible\n\t\tif (this.getOperators(field.Type, field.Multiple)[conditionWrapper.firstChild.value])\n\t\t{\n\t\t\toperatorNode.value = conditionWrapper.firstChild.value;\n\t\t}\n\n\t\tconditionWrapper.replaceChild(operatorNode, conditionWrapper.firstChild);\n\t\tthis.onOperatorChange(operatorNode, field, valueWrapper);\n\t}\n\n\tonOperatorChange(selectNode: Node, field: Object, valueWrapper: HTMLElement)\n\t{\n\t\tconst valueInput = valueWrapper.querySelector(`[name^=\"${this.#fieldPrefix}value\"]`);\n\t\tDom.clean(valueWrapper);\n\n\t\tDom.append(\n\t\t\tthis.#getValueNode(field, valueInput?.value || this.#condition.value, selectNode.value),\n\t\t\tvalueWrapper,\n\t\t);\n\t}\n\n\t#getValueNode(field: {}, value, operator: string): any\n\t{\n\t\tif (operator === Operator.BETWEEN)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<div>\n\t\t\t\t\t${this.createValueNode(field, Type.isArrayFilled(value) ? value[0] : value)}\n\t\t\t\t\t<div style=\"height: 8px;\"></div>\n\t\t\t\t\t${this.createValueNode(field, Type.isArrayFilled(value) ? value[1] : '')}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\tif (!operator.includes('empty'))\n\t\t{\n\t\t\treturn this.createValueNode(field, value);\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t// TODO - fix this method\n\tgetField(object, id)\n\t{\n\t\tlet field;\n\t\tconst robot = Designer.getInstance().robot;\n\t\tconst component = Designer.getInstance().component;\n\t\tconst tpl = robot ? robot.getTemplate() : null;\n\n\t\tswitch (object)\n\t\t{\n\t\t\tcase 'Document':\n\t\t\t\tfor (let i = 0; i < this.#fields.length; ++i)\n\t\t\t\t{\n\t\t\t\t\tif (id === this.#fields[i].Id)\n\t\t\t\t\t{\n\t\t\t\t\t\tfield = this.#fields[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Template':\n\t\t\t\tif (tpl && component && component.triggerManager)\n\t\t\t\t{\n\t\t\t\t\tfield = component.triggerManager.getReturnProperty(tpl.getStatusId(), id);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Constant':\n\t\t\t\tif (tpl)\n\t\t\t\t{\n\t\t\t\t\tfield = tpl.getConstant(id);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'GlobalConst':\n\t\t\t\tif (component)\n\t\t\t\t{\n\t\t\t\t\tfield = component.getConstant(id);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'GlobalVar':\n\t\t\t\tif (component)\n\t\t\t\t{\n\t\t\t\t\tfield = component.getGVariable(id);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tvar foundRobot = tpl? tpl.getRobotById(object) : null;\n\t\t\t\tif (foundRobot)\n\t\t\t\t{\n\t\t\t\t\tfield = foundRobot.getReturnProperty(id);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn field || {\n\t\t\tId: id,\n\t\t\tObjectId: object,\n\t\t\tName: id,\n\t\t\tType: 'string',\n\t\t\tExpression: id,\n\t\t\tSystemExpression: `{=${object}:${id}}`,\n\t\t};\n\t}\n\n\tgetOperators(fieldType, multiple): {}\n\t{\n\t\tconst allLabels = Operator.getAllLabels();\n\n\t\tlet list = {\n\t\t\t'!empty': allLabels[Operator.NOT_EMPTY],\n\t\t\t'empty': allLabels[Operator.EMPTY],\n\t\t\t'=': allLabels[Operator.EQUAL],\n\t\t\t'!=': allLabels[Operator.NOT_EQUAL],\n\t\t};\n\t\tswitch (fieldType)\n\t\t{\n\t\t\tcase 'file':\n\t\t\tcase 'UF:crm':\n\t\t\tcase 'UF:resourcebooking':\n\t\t\tcase 'email':\n\t\t\tcase 'phone':\n\t\t\tcase 'web':\n\t\t\tcase 'im':\n\t\t\t\tlist = {\n\t\t\t\t\t'!empty': allLabels[Operator.NOT_EMPTY],\n\t\t\t\t\t'empty': allLabels[Operator.EMPTY],\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'bool':\n\t\t\tcase 'select':\n\t\t\t\tif (multiple)\n\t\t\t\t{\n\t\t\t\t\tlist[Operator.CONTAIN] = allLabels[Operator.CONTAIN];\n\t\t\t\t\tlist[Operator.NOT_CONTAIN] = allLabels[Operator.NOT_CONTAIN];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t//TODO: render multiple select in value selector\n\t\t\t\t\t//list['in'] = Loc.getMessage('BIZPROC_AUTOMATION_ROBOT_CONDITION_IN');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'user':\n\t\t\t\tlist[Operator.IN] = allLabels[Operator.IN];\n\t\t\t\tlist[Operator.NOT_IN] = allLabels[Operator.NOT_IN];\n\t\t\t\tlist[Operator.CONTAIN] = allLabels[Operator.CONTAIN];\n\t\t\t\tlist[Operator.NOT_CONTAIN] = allLabels[Operator.NOT_CONTAIN];\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlist[Operator.IN] = allLabels[Operator.IN];\n\t\t\t\tlist[Operator.NOT_IN] = allLabels[Operator.NOT_IN];\n\t\t\t\tlist[Operator.CONTAIN] = allLabels[Operator.CONTAIN];\n\t\t\t\tlist[Operator.NOT_CONTAIN] = allLabels[Operator.NOT_CONTAIN];\n\t\t\t\tlist[Operator.GREATER_THEN] = allLabels[Operator.GREATER_THEN];\n\t\t\t\tlist[Operator.GREATER_THEN_OR_EQUAL] = allLabels[Operator.GREATER_THEN_OR_EQUAL];\n\t\t\t\tlist[Operator.LESS_THEN] = allLabels[Operator.LESS_THEN];\n\t\t\t\tlist[Operator.LESS_THEN_OR_EQUAL] = allLabels[Operator.LESS_THEN_OR_EQUAL];\n\t\t}\n\n\t\tif (['time', 'date', 'datetime', 'int', 'double'].includes(fieldType) || Type.isUndefined(fieldType))\n\t\t{\n\t\t\tlist[Operator.BETWEEN] = allLabels[Operator.BETWEEN];\n\t\t}\n\n\t\treturn list;\n\t}\n\n\tgetOperatorLabel(id): string\n\t{\n\t\treturn Operator.getOperatorLabel(id);\n\t}\n\n\tfilterFields()\n\t{\n\t\tconst filtered = [];\n\t\tfor (let i = 0; i < this.#fields.length; ++i)\n\t\t{\n\t\t\tconst type = this.#fields[i].Type;\n\n\t\t\tif (\n\t\t\t\ttype === 'bool'\n\t\t\t\t|| type === 'date'\n\t\t\t\t|| type === 'datetime'\n\t\t\t\t|| type === 'double'\n\t\t\t\t|| type === 'file'\n\t\t\t\t|| type === 'int'\n\t\t\t\t|| type === 'select'\n\t\t\t\t|| type === 'string'\n\t\t\t\t|| type === 'text'\n\t\t\t\t|| type === 'user'\n\t\t\t\t|| type === 'UF:money'\n\t\t\t\t|| type === 'UF:crm'\n\t\t\t\t|| type === 'UF:resourcebooking'\n\t\t\t\t|| type === 'UF:url'\n\t\t\t)\n\t\t\t{\n\t\t\t\tfiltered.push(this.#fields[i]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t// TODO add support of custom types\n\t\t\t}\n\t\t}\n\n\t\treturn filtered;\n\t}\n\n\tcreateValueNode(docField, value)\n\t{\n\t\tconst currentDocument = (\n\t\t\tDesigner.getInstance().component\n\t\t\t\t? Designer.getInstance().component.document\n\t\t\t\t: getGlobalContext().document\n\t\t);\n\n\t\tconst docType = [...currentDocument.getRawType(), currentDocument.getCategoryId()];\n\n\t\tconst field = Runtime.clone(docField);\n\t\tfield.Multiple = false;\n\n\t\tconst valueNodes = BX.Bizproc.FieldType.renderControlPublic(\n\t\t\tdocType,\n\t\t\tfield,\n\t\t\t`${this.#fieldPrefix}value`,\n\t\t\tvalue,\n\t\t\tfalse,\n\t\t);\n\n\t\tvalueNodes.querySelectorAll('[data-role]').forEach((node) => {\n\t\t\tconst selector = SelectorManager.createSelectorByRole(node.dataset.role, {\n\t\t\t\tcontext: new SelectorContext({\n\t\t\t\t\tfields: getGlobalContext().document.getFields(),\n\t\t\t\t\tuseSwitcherMenu: false,\n\t\t\t\t\trootGroupTitle: this.#rootGroupTitle ?? getGlobalContext().document.title,\n\t\t\t\t}),\n\t\t\t});\n\n\t\t\tif (selector)\n\t\t\t{\n\t\t\t\tif (this.#showValuesSelector === true)\n\t\t\t\t{\n\t\t\t\t\tif (Type.isFunction(this.#onOpenMenu))\n\t\t\t\t\t{\n\t\t\t\t\t\tselector.subscribe('onOpenMenu', this.#onOpenMenu);\n\t\t\t\t\t}\n\t\t\t\t\tselector.renderTo(node);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tselector.targetInput = node;\n\t\t\t\t\tselector.parseTargetProperties();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn valueNodes;\n\t}\n\n\tcreateOperatorNode(field, valueWrapper)\n\t{\n\t\tconst select = Dom.create('select', {\n\t\t\tattrs: { className: 'bizproc-automation-popup-settings-dropdown' },\n\t\t});\n\n\t\tconst operatorList = this.getOperators(field.Type, field.Multiple);\n\t\tfor (const operatorId in operatorList)\n\t\t{\n\t\t\tif (!operatorList.hasOwnProperty(operatorId))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tDom.append(\n\t\t\t\tTag.render`\n\t\t\t\t\t<option value=\"${Text.encode(operatorId)}\">${Text.encode(operatorList[operatorId])}</option>\n\t\t\t\t`,\n\t\t\t\tselect,\n\t\t\t);\n\t\t}\n\n\t\tEvent.bind(select, 'change', this.onOperatorChange.bind(\n\t\t\tthis,\n\t\t\tselect,\n\t\t\tfield,\n\t\t\tvalueWrapper,\n\t\t));\n\n\t\treturn select;\n\t}\n\n\tremoveCondition(event: Event)\n\t{\n\t\tthis.emit('onRemoveConditionClick', new BaseEvent({ data: { conditionSelector: this } }));\n\n\t\tthis.#condition = null;\n\t\tDom.remove(this.node);\n\n\t\tthis.labelNode = null;\n\t\tthis.fieldNode = null;\n\t\tthis.operatorNode = null;\n\t\tthis.valueNode = null;\n\t\tthis.#valueNode2 = null;\n\t\tthis.node = null;\n\n\t\tevent.stopPropagation();\n\t}\n\n\tchangeJoiner(btn: Element, event: Event)\n\t{}\n\n\tdestroy()\n\t{\n\t\tif (this.popup)\n\t\t{\n\t\t\tthis.popup.close();\n\t\t}\n\t}\n}\n","import { Type, Dom, Event, Tag, Loc, Text } from 'main.core';\nimport { BaseEvent, EventEmitter } from 'main.core.events';\n\nimport { Condition, ConditionGroup } from 'bizproc.automation';\nimport { ConditionSelector } from './condition-selector';\nimport { Draggable } from 'ui.draganddrop.draggable';\n\ntype ConditionGroupSelectorOptions = {\n\tfields: Array<Object>,\n\tfieldPrefix: string,\n\trootGroupTitle: string,\n\tonOpenFieldMenu: ?(BaseEvent) => void,\n\tonOpenMenu: ?(BaseEvent) => void,\n\tshowValuesSelector: boolean,\n\tcaption: ?{\n\t\thead: string,\n\t\tadd: string,\n\t\tcollapsed: string,\n\t},\n\tisExpanded: boolean,\n};\n\nexport class ConditionGroupSelector extends EventEmitter\n{\n\tmodern: boolean = true;// todo: remove 2024\n\n\t#conditionGroup: ConditionGroup;\n\t#fields: Array<Object>;\n\t#fieldPrefix: string;\n\t#itemSelectors: Array<ConditionSelector>;\n\t#onOpenFieldMenu: ?(BaseEvent) => void;\n\t#onOpenMenu: ?(BaseEvent) => void;\n\t#showValuesSelector: boolean;\n\t#rootGroupTitle: ?string;\n\n\t#options: ConditionGroupSelectorOptions = {};\n\t#toggleButtonNode: HTMLDivElement;\n\t#draggableNode: HTMLDivElement;\n\n\tconstructor(conditionGroup: ConditionGroup, options: ConditionGroupSelectorOptions)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Bizproc.Automation.Condition');\n\n\t\tthis.#conditionGroup = conditionGroup;\n\t\tthis.#fields = [];\n\t\tthis.#fieldPrefix = 'condition_';\n\t\tthis.#itemSelectors = [];\n\n\t\tif (Type.isPlainObject(options))\n\t\t{\n\t\t\tif (Type.isArray(options.fields))\n\t\t\t{\n\t\t\t\tthis.#fields = options.fields;\n\t\t\t}\n\n\t\t\tif (options.fieldPrefix)\n\t\t\t{\n\t\t\t\tthis.#fieldPrefix = options.fieldPrefix;\n\t\t\t}\n\n\t\t\tthis.#rootGroupTitle = options.rootGroupTitle;\n\t\t\tthis.#onOpenFieldMenu = options.onOpenFieldMenu;\n\t\t\tthis.#onOpenMenu = options.onOpenMenu;\n\t\t\tthis.#showValuesSelector = options.showValuesSelector ?? true;\n\n\t\t\tthis.#options = options;\n\t\t}\n\t}\n\n\tcreateNode()\n\t{\n\t\tthis.#conditionGroup.getItems().forEach((item) => {\n\t\t\tconst conditionSelector = new ConditionSelector(item[0], {\n\t\t\t\tfields: this.#fields,\n\t\t\t\tjoiner: item[1],\n\t\t\t\tfieldPrefix: this.#fieldPrefix,\n\t\t\t\trootGroupTitle: this.#rootGroupTitle,\n\t\t\t\tonOpenFieldMenu: this.#onOpenFieldMenu,\n\t\t\t\tonOpenMenu: this.#onOpenMenu,\n\t\t\t\tshowValuesSelector: this.#showValuesSelector,\n\t\t\t});\n\t\t\tconditionSelector.subscribe('onRemoveConditionClick', this.#onRemoveConditionClick.bind(this));\n\n\t\t\tthis.#itemSelectors.push(conditionSelector);\n\t\t});\n\n\t\tconst hasConditions = this.#conditionGroup.items.length > 0;\n\t\tconst isCollapsed = this.#options.isExpanded !== true && hasConditions;\n\n\t\tconst collapseButtonTitle = (\n\t\t\tisCollapsed\n\t\t\t\t? Loc.getMessage('BIZPROC_JS_AUTOMATION_EXPAND_CONDITION')\n\t\t\t\t: Loc.getMessage('BIZPROC_JS_AUTOMATION_COLLAPSE_CONDITION')\n\t\t);\n\n\t\tconst { root, conditionContent, btnToggleList, btnTextNode, addButton, draggableNode } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-settings\">\n\t\t\t\t<div\n\t\t\t\t\tref=\"conditionContent\"\n\t\t\t\t\tclass=\"bizproc-automation-popup-settings__condition-content ${isCollapsed ? '' : '--active'}\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"bizproc-automation-popup-settings__condition-header\">\n\t\t\t\t\t\t<span class=\"bizproc-automation-popup-settings-title\">\n\t\t\t\t\t\t\t${Text.encode(this.#options.caption?.head)}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref=\"btnToggleList\"\n\t\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings__btn-toggle ${hasConditions ? '' : '--disabled'}\"\n\t\t\t\t\t\t\tdata-role=\"condition-toggle\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span ref=\"btnTextNode\" class=\"bizproc-automation-popup-settings-title\">\n\t\t\t\t\t\t\t\t${collapseButtonTitle}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<div class=\"ui-icon-set --chevron-down\" style=\"--ui-icon-set__icon-size: 16px;\"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"bizproc-automation-popup-settings__transition-height-wrapper\">\n\t\t\t\t\t\t<div class=\"bizproc-automation-popup-settings__transition-height-content\">\n\t\t\t\t\t\t\t<div class=\"bizproc-automation-popup-settings__condition-body\">\n\t\t\t\t\t\t\t\t<div ref=\"draggableNode\" class=\"bizproc-automation-popup-settings__condition\">\n\t\t\t\t\t\t\t\t\t${this.#itemSelectors.map((selector) => selector.createNode())}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<span class=\"bizproc-automation-popup-settings-link-wrapper\">\n\t\t\t\t\t\t\t\t\t<a ref=\"addButton\" class=\"bizproc-automation-popup-settings-link\">\n\t\t\t\t\t\t\t\t\t\t${Text.encode(this.#options.caption?.add || Loc.getMessage('BIZPROC_JS_AUTOMATION_ADD_CONDITION'))}\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"bizproc-automation-popup-settings__transition-height-wrapper --revert\">\n\t\t\t\t\t\t<div class=\"bizproc-automation-popup-settings__transition-height-content\">\n\t\t\t\t\t\t\t<div class=\"bizproc-automation-popup-settings__condition-help\">\n\t\t\t\t\t\t\t\t${Text.encode(this.#options.caption?.collapsed || Loc.getMessage('BIZPROC_JS_AUTOMATION_CONDITION_COLLAPSED_TITLE_1'))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t\tthis.#toggleButtonNode = btnToggleList;\n\t\tthis.#draggableNode = draggableNode;\n\n\t\tEvent.bind(btnToggleList, 'click', this.#onToggleGroupViewClick.bind(this, conditionContent, btnTextNode));\n\t\tEvent.bind(addButton, 'click', this.addItem.bind(this));\n\t\tthis.#initDragNDrop();\n\n\t\treturn root;\n\t}\n\n\t#onToggleGroupViewClick(content, toggleText)\n\t{\n\t\tDom.toggleClass(content, '--active');\n\t\tconst isExpanded = Dom.hasClass(content, '--active');\n\n\t\tDom.adjust(\n\t\t\ttoggleText,\n\t\t\t{\n\t\t\t\ttext: (\n\t\t\t\t\tisExpanded\n\t\t\t\t\t\t? Loc.getMessage('BIZPROC_JS_AUTOMATION_COLLAPSE_CONDITION')\n\t\t\t\t\t\t: Loc.getMessage('BIZPROC_JS_AUTOMATION_EXPAND_CONDITION')\n\t\t\t\t),\n\t\t\t},\n\t\t);\n\n\t\tthis.emit(\n\t\t\t'onToggleGroupViewClick',\n\t\t\tnew BaseEvent({ data: { isCollapsed: !isExpanded, isExpanded } }),\n\t\t);\n\t}\n\n\t#initDragNDrop()\n\t{\n\t\tnew Draggable({\n\t\t\tcontainer: this.#draggableNode,\n\t\t\ttype: Draggable.CLONE,\n\t\t\tdraggable: '.bizproc-automation-popup-settings__condition-selector',\n\t\t\tdragElement: '.bizproc-automation-popup-settings__condition-item_draggable',\n\t\t});\n\t}\n\n\taddItem()\n\t{\n\t\tconst conditionSelector = new ConditionSelector(new Condition({}, this.#conditionGroup), {\n\t\t\tfields: this.#fields,\n\t\t\tfieldPrefix: this.#fieldPrefix,\n\t\t\trootGroupTitle: this.#rootGroupTitle,\n\t\t\tonOpenFieldMenu: this.#onOpenFieldMenu,\n\t\t\tonOpenMenu: this.#onOpenMenu,\n\t\t\tshowValuesSelector: this.#showValuesSelector,\n\t\t});\n\t\tconditionSelector.subscribe('onRemoveConditionClick', this.#onRemoveConditionClick.bind(this));\n\t\tthis.#itemSelectors.push(conditionSelector);\n\n\t\tDom.append(conditionSelector.createNode(), this.#draggableNode);\n\t\tif (Dom.hasClass(this.#toggleButtonNode, '--disabled'))\n\t\t{\n\t\t\tDom.removeClass(this.#toggleButtonNode, '--disabled');\n\t\t}\n\t}\n\n\t#onRemoveConditionClick(event: BaseEvent)\n\t{\n\t\tconst conditionSelector = event.getData().conditionSelector;\n\t\tif (conditionSelector)\n\t\t{\n\t\t\tconst index = this.#itemSelectors.indexOf(conditionSelector);\n\t\t\tif (index > -1)\n\t\t\t{\n\t\t\t\tthis.#itemSelectors.splice(index, 1);\n\t\t\t}\n\t\t}\n\n\t\tif (this.#itemSelectors.length <= 0 && !Dom.hasClass(this.#toggleButtonNode, '--disabled'))\n\t\t{\n\t\t\tDom.addClass(this.#toggleButtonNode, '--disabled');\n\t\t}\n\t}\n\n\tdestroy()\n\t{\n\t\tthis.#itemSelectors.forEach((selector) => selector.destroy());\n\t\tthis.#itemSelectors = [];\n\t}\n}\n","import { Loc, Runtime, Type } from 'main.core';\n\nconst createNewField = (oldField: Field, newField: {}, objectId: string, modifier: string): Field => {\n\tconst systemExpression = `{=${objectId}:${oldField.Id} ${modifier}}`;\n\n\tlet expression = oldField.Expression;\n\tif (expression.startsWith('{{') && expression.endsWith('}}'))\n\t{\n\t\texpression = expression.replace(/^{{/, '').replace(/}}$/, '');\n\t\tif (expression.includes('#'))\n\t\t{\n\t\t\texpression = expression.slice(0, expression.indexOf('#')); // cut comment\n\t\t}\n\n\t\texpression = `{{${expression} ${modifier}}}`;\n\t}\n\telse\n\t{\n\t\texpression = systemExpression;\n\t}\n\n\treturn {\n\t\t...Runtime.clone(oldField),\n\t\t...newField,\n\t\tObjectId: objectId,\n\t\tType: 'string',\n\t\tSystemExpression: systemExpression,\n\t\tExpression: expression,\n\t};\n};\n\nconst modifiersMap = {\n\tfriendly: '> friendly',\n\tprintable: '> printable',\n\tserver: '> server',\n\tresponsible: '> responsible',\n\tshortLink: '> shortlink',\n};\n\nexport default function enrichFieldsWithModifiers(\n\tfields: Array<Field>,\n\tobjectId: string,\n\tuseModifiers?: {\n\t\tfriendly?: boolean,\n\t\tprintable?: boolean,\n\t\tserver?: boolean,\n\t\tresponsible?: boolean,\n\t\tshortLink?: boolean,\n\t},\n): Array<Field>\n{\n\tconst canUseModifier = (value) => Type.isNil(value) || value === true;\n\n\tconst printablePrefix = Loc.getMessage('BIZPROC_AUTOMATION_CMP_MOD_PRINTABLE_PREFIX');\n\tconst names = fields.map((field) => field.Name).join('\\n');\n\n\tconst result = [];\n\tfields.forEach((field) => {\n\t\tconst printableName = `${field.Name} ${printablePrefix}`;\n\t\tconst isCustomField = field.BaseType === 'string' && field.Type !== 'string';\n\n\t\tif (!isCustomField)\n\t\t{\n\t\t\tresult.push({\n\t\t\t\t...Runtime.clone(field),\n\t\t\t\tObjectId: objectId,\n\t\t\t});\n\t\t}\n\n\t\tif (field.Type === 'user' && canUseModifier(useModifiers?.friendly) && !names.includes(printableName))\n\t\t{\n\t\t\tresult.push(\n\t\t\t\tcreateNewField(field, { Name: printableName }, objectId, modifiersMap.friendly),\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\t(['bool', 'file'].includes(field.Type) || isCustomField)\n\t\t\t&& canUseModifier(useModifiers?.printable)\n\t\t\t&& !names.includes(printableName)\n\t\t)\n\t\t{\n\t\t\tresult.push(\n\t\t\t\tcreateNewField(field, { Name: printableName }, objectId, modifiersMap.printable),\n\t\t\t);\n\t\t}\n\n\t\tif (['date', 'datetime', 'time'].includes(field.BaseType))\n\t\t{\n\t\t\tif (canUseModifier(useModifiers?.server))\n\t\t\t{\n\t\t\t\tconst name = `${field.Name} ${Loc.getMessage('BIZPROC_AUTOMATION_CMP_MOD_DATE_BY_SERVER')}`;\n\t\t\t\tresult.push(\n\t\t\t\t\tcreateNewField(field, { Name: name }, objectId, modifiersMap.server),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (canUseModifier(useModifiers?.responsible))\n\t\t\t{\n\t\t\t\tconst name = `${field.Name} ${Loc.getMessage('BIZPROC_AUTOMATION_CMP_MOD_DATE_BY_RESPONSIBLE')}`;\n\t\t\t\tresult.push(\n\t\t\t\t\tcreateNewField(field, { Name: name }, objectId, modifiersMap.responsible),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (field.Type === 'file' && canUseModifier(useModifiers?.shortLink))\n\t\t{\n\t\t\tresult.push(\n\t\t\t\tcreateNewField(field, { Id: `${field.Id}_shortlink` }, objectId, modifiersMap.shortLink),\n\t\t\t);\n\t\t}\n\t});\n\n\treturn result;\n}\n","import { Type, Runtime } from 'main.core';\nimport { MenuGroupItem, Field } from '../types';\n\nexport class Group\n{\n\t#items: [] = [];\n\t#groups: Object<string, MenuGroupItem> = {};\n\t#setSuperTitle: boolean;\n\n\tconstructor(data: { fields: [], setSuperTitle: boolean })\n\t{\n\t\tif (this.constructor === Group)\n\t\t{\n\t\t\tthrow new Error('Object of Abstract Class cannot be created');\n\t\t}\n\n\t\tif (!Type.isArray(data.fields))\n\t\t{\n\t\t\tthrow new TypeError('fields must be an array');\n\t\t}\n\n\t\tthis.#setSuperTitle = Type.isBoolean(data.setSuperTitle) ? data.setSuperTitle : true;\n\t}\n\n\tget items(): Array<Field>\n\t{\n\t\treturn this.#items;\n\t}\n\n\tget groups(): MenuGroupItem[]\n\t{\n\t\treturn Object.values(this.#groups);\n\t}\n\n\tget groupsWithChildren(): MenuGroupItem[]\n\t{\n\t\treturn this.groups.filter((group) => group.children.length > 0);\n\t}\n\n\taddGroup(groupId: string, group: MenuGroupItem): void\n\t{\n\t\tthis.#groups[groupId] = this.#normalizeGroup(group);\n\t}\n\n\thasGroup(groupId: string): boolean\n\t{\n\t\treturn Object.hasOwn(this.#groups, groupId);\n\t}\n\n\taddGroupItem(groupId: string, item: MenuGroupItem)\n\t{\n\t\tif (this.hasGroup(groupId))\n\t\t{\n\t\t\tconst normalizedItem = this.#normalizeGroup(item, this.#groups[groupId].title);\n\t\t\tthis.#groups[groupId].children.push(normalizedItem);\n\t\t}\n\t}\n\n\t#normalizeGroup(group: MenuGroupItem, superGroupTitle: ?string = null): MenuGroupItem\n\t{\n\t\tconst normalizedGroup: MenuGroupItem = Runtime.clone(group);\n\n\t\tif (!Type.isBoolean(normalizedGroup.searchable))\n\t\t{\n\t\t\tnormalizedGroup.searchable = true;\n\t\t}\n\n\t\tif (!Type.isArray(normalizedGroup.children))\n\t\t{\n\t\t\tnormalizedGroup.children = [];\n\t\t}\n\n\t\tnormalizedGroup.children = (\n\t\t\tnormalizedGroup.children\n\t\t\t\t.map((childGroup) => this.#normalizeGroup(childGroup, normalizedGroup.title))\n\t\t);\n\n\t\tif (\n\t\t\tthis.#setSuperTitle\n\t\t\t&& Type.isStringFilled(superGroupTitle)\n\t\t\t&& !Type.isStringFilled(normalizedGroup.supertitle)\n\t\t)\n\t\t{\n\t\t\tnormalizedGroup.supertitle = superGroupTitle;\n\t\t}\n\n\t\tif (!Type.isArrayFilled(normalizedGroup.children) && normalizedGroup.searchable === true)\n\t\t{\n\t\t\tthis.#items.push(normalizedGroup);\n\t\t}\n\n\t\treturn {\n\t\t\tentityId: 'bp',\n\t\t\ttabs: 'recents',\n\t\t\t...normalizedGroup,\n\t\t};\n\t}\n}\n","export default class GroupId\n{\n\tstatic DOCUMENT = 'ROOT';\n\tstatic FILES = '__FILES';\n\tstatic VARIABLES = '__GLOB_VARIABLES';\n\tstatic CONSTANTS = '__CONSTANTS';\n\tstatic ACTIVITY_RESULT = '__RESULT';\n\tstatic TRIGGER_RESULT = '__TRESULT';\n}\n","import { Type } from 'main.core';\nimport { Field } from '../types';\nimport { Group } from './group';\nimport GroupId from './group-id';\n\nexport class DocumentGroup extends Group\n{\n\tconstructor(data: {\n\t\tfields: Array<Field>,\n\t\ttitle: string,\n\t})\n\t{\n\t\tsuper(data);\n\n\t\tif (!Type.isStringFilled(data.title))\n\t\t{\n\t\t\tthrow new TypeError('title must be filled string');\n\t\t}\n\n\t\tthis.#fillGroups(data.fields, data.title);\n\t}\n\n\t#fillGroups(fields: Array<Field>, title: string)\n\t{\n\t\tconst rootGroupId = GroupId.DOCUMENT;\n\t\tthis.addGroup(rootGroupId, {\n\t\t\tid: rootGroupId,\n\t\t\ttitle,\n\t\t\tsearchable: false,\n\t\t});\n\n\t\tfields.forEach((field) => {\n\t\t\tlet groupKey = field.Id.includes('.') ? field.Id.split('.')[0] : rootGroupId;\n\t\t\tlet groupName = '';\n\t\t\tlet fieldName = field.Name;\n\n\t\t\tif (field.Name && groupKey !== rootGroupId && field.Name.includes(': '))\n\t\t\t{\n\t\t\t\tconst names = field.Name.split(': ');\n\t\t\t\tgroupName = names.shift();\n\t\t\t\tfieldName = names.join(': ');\n\t\t\t}\n\n\t\t\tif (field.Id.startsWith('ASSIGNED_BY_') && field.Id !== 'ASSIGNED_BY_ID' && field.Id !== 'ASSIGNED_BY_PRINTABLE')\n\t\t\t{\n\t\t\t\tgroupKey = 'ASSIGNED_BY';\n\t\t\t\tconst names = field.Name.split(' ');\n\t\t\t\tgroupName = names.shift();\n\t\t\t\tfieldName = names.join(' ').replace('(', '').replace(')', '');\n\t\t\t}\n\n\t\t\tif (!this.hasGroup(groupKey))\n\t\t\t{\n\t\t\t\tthis.addGroup(groupKey, {\n\t\t\t\t\tid: groupKey,\n\t\t\t\t\ttitle: groupName,\n\t\t\t\t\tsearchable: false,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.addGroupItem(groupKey, {\n\t\t\t\tid: field.SystemExpression,\n\t\t\t\ttitle: fieldName || field.Id,\n\t\t\t\tcustomData: { field },\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Loc, Type } from 'main.core';\nimport { Field } from '../types';\nimport { Group } from './group';\nimport GroupId from './group-id';\n\nexport class FileGroup extends Group\n{\n\tconstructor(data: { fields: Array<Field> })\n\t{\n\t\tsuper(data);\n\n\t\tthis.#fillGroups(data.fields);\n\t}\n\n\t#fillGroups(fields: Array<Field>)\n\t{\n\t\tconst groupId = GroupId.FILES;\n\n\t\tthis.addGroup(groupId, {\n\t\t\tid: groupId,\n\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_CMP_FILES_LINKS'),\n\t\t\tsearchable: false,\n\t\t});\n\n\t\tfields.forEach((field) => {\n\t\t\tlet title = field.Name || field.Id;\n\t\t\tif (Type.isStringFilled(field.ObjectName))\n\t\t\t{\n\t\t\t\ttitle = `${field.ObjectName}: ${title}`;\n\t\t\t}\n\n\t\t\tthis.addGroupItem(groupId, {\n\t\t\t\tid: field.SystemExpression, // Expression,\n\t\t\t\ttitle,\n\t\t\t\tcustomData: { field },\n\t\t\t});\n\t\t});\n\t}\n}\n","import {\n\tDelayInterval,\n\tDelayIntervalSelector,\n\tHelper,\n\tSelectorContext,\n} from 'bizproc.automation';\nimport { Dom, Event, Loc, Runtime, Tag, Type } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { Menu, MenuManager } from 'main.popup';\nimport { Dialog } from 'ui.entity-selector';\nimport enrichFieldsWithModifiers from './enrich-fields-with-modifiers';\nimport { DocumentGroup } from './group/document-group';\nimport { FileGroup } from './group/file-group';\n\nimport { Field, MenuGroupItem } from './types';\n\nexport class InlineSelector extends EventEmitter\n{\n\tcontext: SelectorContext;\n\tfieldProperty: ?Field = null;\n\treplaceOnWrite: boolean = false;\n\tmenuButton: ?HTMLSpanElement = null;\n\ttargetInput: ?HTMLElement = null;\n\t#menuGroups: Object<string, MenuGroupItem> = {};\n\tbasisFields: Array<Object> = [];\n\t#dialog: ?Dialog = null;\n\t#switcherDialog: ?Menu = null;\n\n\tconstructor(props: { context: SelectorContext })\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Bizproc.Automation.Selector');\n\n\t\tthis.context = props.context;\n\t\tthis.basisFields = this.context.fields;\n\t}\n\n\thasGroup(groupId: string): boolean\n\t{\n\t\treturn this.#menuGroups.hasOwnProperty(groupId);\n\t}\n\n\taddGroup(groupId: string, group: MenuGroupItem)\n\t{\n\t\tconst normalizedGroup = this.#normalizeGroup(group);\n\n\t\tif (this.hasGroup(groupId))\n\t\t{\n\t\t\tthis.#menuGroups[groupId] = (\n\t\t\t\tthis.#normalizeGroup(this.#mergeGroups(this.#menuGroups[groupId], normalizedGroup))\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#menuGroups[groupId] = normalizedGroup;\n\t}\n\n\t#mergeGroups(originalGroup: MenuGroupItem, newGroup: MenuGroupItem): MenuGroupItem\n\t{\n\t\treturn {\n\t\t\t...originalGroup,\n\t\t\t...newGroup,\n\t\t\tchildren: [\n\t\t\t\t...originalGroup.children,\n\t\t\t\t...newGroup.children,\n\t\t\t],\n\t\t};\n\t}\n\n\taddGroupItem(groupId: string, item: MenuGroupItem)\n\t{\n\t\tif (this.hasGroup(groupId))\n\t\t{\n\t\t\tthis.#menuGroups[groupId].children.push(this.#normalizeGroup(item));\n\t\t}\n\t}\n\n\t#normalizeGroup(group: MenuGroupItem)\n\t{\n\t\tif (!Type.isArray(group.children))\n\t\t{\n\t\t\tgroup.children = [];\n\t\t}\n\n\t\tgroup.children = (\n\t\t\tgroup\n\t\t\t\t.children\n\t\t\t\t.filter(item => item.customData?.field ? this.#shouldShowField(item.customData.field) : true)\n\t\t\t\t.map(childGroup => this.#normalizeGroup(childGroup))\n\t\t);\n\n\t\treturn {\n\t\t\tentityId: 'bp',\n\t\t\ttabs: 'recents',\n\t\t\t...group\n\t\t};\n\t}\n\n\trenderWith(targetInput: Element): HTMLDivElement\n\t{\n\t\tthis.targetInput = Runtime.clone(targetInput);\n\t\tthis.targetInput.setAttribute('autocomplete', 'off');\n\n\t\tthis.menuButton = Tag.render`\n\t\t\t<span \n\t\t\t\tonclick=\"${this.openMenu.bind(this)}\"\n\t\t\t\tclass=\"bizproc-automation-popup-select-dotted\"\n\t\t\t></span>\n\t\t`;\n\n\t\tthis.parseTargetProperties();\n\n\t\tthis.replaceOnWrite |= (this.targetInput.getAttribute('data-select-mode') === 'replace');\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-select\">\n\t\t\t\t${this.targetInput}\n\t\t\t\t${this.menuButton}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\trenderTo(targetInput: Element): void\n\t{\n\t\ttargetInput.parentNode.replaceChild(this.renderWith(targetInput), targetInput);\n\t}\n\n\tbindTargetEvents(): void\n\t{\n\t\tEvent.bind(this.targetInput, 'keydown', this.#onKeyDown.bind(this));\n\t}\n\n\tparseTargetProperties(): void\n\t{\n\t\tthis.fieldProperty = JSON.parse(this.targetInput.getAttribute('data-property'));\n\t\tconst propertyType = this.targetInput.getAttribute('data-selector-type');\n\n\t\tif (!this.fieldProperty && propertyType)\n\t\t{\n\t\t\tthis.fieldProperty = { Type: propertyType };\n\t\t}\n\n\t\tif (this.fieldProperty)\n\t\t{\n\t\t\tthis.fieldProperty.Type = this.fieldProperty.Type || propertyType;\n\t\t\tthis.#prepareSelectorUsingFieldType();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.context.useSwitcherMenu = false;\n\t\t}\n\n\t\tthis.replaceOnWrite |= (this.targetInput.getAttribute('data-select-mode') === 'replace');\n\t}\n\n\t#prepareSelectorUsingFieldType(): void\n\t{\n\t\tthis.basisFields = this.basisFields.filter((field) => this.#shouldShowField(field));\n\n\t\tconst type = this.fieldProperty?.Type;\n\t\tif (type === 'file')\n\t\t{\n\t\t\tthis.replaceOnWrite = true;\n\t\t}\n\t\telse if (type === 'date' || type === 'datetime')\n\t\t{\n\t\t\tthis.replaceOnWrite = true;\n\n\t\t\tconst delayIntervalSelector = new DelayIntervalSelector({\n\t\t\t\tlabelNode: this.targetInput,\n\t\t\t\tbasisFields: this.basisFields,\n\t\t\t\tuseAfterBasis: true,\n\t\t\t\tonchange: (function(delay)\n\t\t\t\t{\n\t\t\t\t\tthis.targetInput.value = delay.toExpression(\n\t\t\t\t\t\tthis.basisFields,\n\t\t\t\t\t\tHelper.getResponsibleUserExpression(this.context.fields),\n\t\t\t\t\t);\n\t\t\t\t}).bind(this),\n\t\t\t});\n\n\t\t\tdelayIntervalSelector.init(DelayInterval.fromString(this.targetInput.value, this.basisFields));\n\t\t}\n\t}\n\n\t#shouldShowField(field: Field): boolean\n\t{\n\t\tconst fieldType = this.fieldProperty?.Type;\n\t\tif (fieldType === 'file')\n\t\t{\n\t\t\treturn field.Type === 'file';\n\t\t}\n\t\telse if (fieldType === 'date' || fieldType === 'datetime')\n\t\t{\n\t\t\treturn field.Type === 'date' || field.Type === 'datetime';\n\t\t}\n\t\telse if (fieldType === 'time')\n\t\t{\n\t\t\treturn field.Type === 'date' || field.Type === 'datetime' || field.Type === 'time';\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t#onKeyDown(event: KeyboardEvent)\n\t{\n\t\tif (event.keyCode === 45 && event.altKey === false && event.ctrlKey === false && event.shiftKey === false)\n\t\t{\n\t\t\tthis.openMenu(event);\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\topenMenu(event: KeyboardEvent, skipPropertiesSwitcher: boolean = false)\n\t{\n\t\tif (!skipPropertiesSwitcher && this.context.useSwitcherMenu && !this.targetInput.value)\n\t\t{\n\t\t\treturn this.openPropertiesSwitcherMenu();\n\t\t}\n\n\t\tif (this.#dialog)\n\t\t{\n\t\t\tthis.#dialog.show();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fillGroups();\n\t\tthis.onMenuOpen();\n\n\t\tlet menuItems = [];\n\t\tfor (const group of Object.values(this.#menuGroups))\n\t\t{\n\t\t\tif (group.children.length > 0)\n\t\t\t{\n\t\t\t\tmenuItems.push(group);\n\t\t\t}\n\t\t}\n\n\t\tif (menuItems.length === 1)\n\t\t{\n\t\t\tmenuItems = menuItems[0].children;\n\t\t}\n\n\t\tlet menuId = this.menuButton.getAttribute('data-selector-id');\n\t\tif (!menuId)\n\t\t{\n\t\t\tmenuId = Helper.generateUniqueId();\n\t\t\tthis.menuButton.setAttribute('data-selector-id', menuId);\n\t\t}\n\n\t\tthis.#dialog = new Dialog({\n\t\t\ttargetNode: this.menuButton,\n\t\t\twidth: 500,\n\t\t\theight: 300,\n\t\t\tmultiple: false,\n\t\t\tdropdownMode: true,\n\t\t\tenableSearch: true,\n\t\t\titems: this.injectDialogMenuTitles(menuItems),\n\t\t\tshowAvatars: false,\n\t\t\tevents: {\n\t\t\t\t'Item:onBeforeSelect': (event) => {\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tconst item = event.getData().item;\n\t\t\t\t\tthis.onFieldSelect(item.getCustomData().get('field'));\n\t\t\t\t}\n\t\t\t},\n\t\t\tcompactView: true,\n\t\t});\n\n\t\tthis.#dialog.show();\n\t}\n\n\tfillGroups(): void\n\t{\n\t\tthis.fillFieldsGroups();\n\t\tthis.fillFileGroup();\n\t}\n\n\tfillFieldsGroups(): void\n\t{\n\t\tconst documentGroup = new DocumentGroup({\n\t\t\tfields: this.getFields(),\n\t\t\ttitle: this.context.rootGroupTitle,\n\t\t\tsetSuperTitle: false,\n\t\t});\n\n\t\tdocumentGroup.groupsWithChildren.forEach((group) => {\n\t\t\tthis.addGroup(group.id, group);\n\t\t});\n\t}\n\n\tfillFileGroup(): void\n\t{\n\t\tconst fileFields = this.getFields().filter((field) => field.Type === 'file');\n\n\t\tconst fileGroup = new FileGroup({\n\t\t\tfields: enrichFieldsWithModifiers(\n\t\t\t\tfileFields,\n\t\t\t\t'Document',\n\t\t\t\t{\n\t\t\t\t\tfriendly: false,\n\t\t\t\t\tprintable: false,\n\t\t\t\t\tserver: false,\n\t\t\t\t\tresponsible: false,\n\t\t\t\t\tshortLink: true,\n\t\t\t\t},\n\t\t\t).filter((field) => field.Type === 'string'),\n\t\t\tsetSuperTitle: false,\n\t\t});\n\n\t\tfileGroup.groupsWithChildren.forEach((group) => {\n\t\t\tthis.addGroup(group.id, group);\n\t\t});\n\t}\n\n\tonMenuOpen(): void\n\t{\n\t\tthis.emit('onOpenMenu', { selector: this });\n\t}\n\n\topenPropertiesSwitcherMenu()\n\t{\n\t\tconst self = this;\n\n\t\tMenuManager.show(\n\t\t\tHelper.generateUniqueId(),\n\t\t\tthis.menuButton,\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_ASK_CONSTANT'),\n\t\t\t\t\tdisabled: self.fieldProperty?.Type === 'file',\n\t\t\t\t\tonclick(event) {\n\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\tself.emit('onAskConstant', {fieldProperty: self.fieldProperty});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_ASK_PARAMETER'),\n\t\t\t\t\tonclick(event) {\n\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\tself.emit('onAskParameter', {fieldProperty: self.fieldProperty});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_ASK_MANUAL'),\n\t\t\t\t\tonclick(event) {\n\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\tself.openMenu(event, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t],\n\t\t\t{\n\t\t\t\tautoHide: true,\n\t\t\t\toffsetLeft: 20,\n\t\t\t\tangle: { position: 'top'},\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose()\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tthis.#switcherDialog = MenuManager.currentItem;\n\n\t\treturn true;\n\t}\n\n\tinjectDialogMenuTitles(items)\n\t{\n\t\titems.forEach((parent) => {\n\t\t\tif (Type.isArray(parent.children))\n\t\t\t{\n\t\t\t\tthis.injectDialogMenuSupertitles(parent.title, parent.children);\n\t\t\t}\n\t\t});\n\n\t\treturn items;\n\t}\n\n\tinjectDialogMenuSupertitles(title: string, children)\n\t{\n\t\tchildren.forEach((child) => {\n\t\t\tif (!child.supertitle)\n\t\t\t{\n\t\t\t\tchild.supertitle = title;\n\t\t\t}\n\t\t\tif (Type.isArrayFilled(child.children))\n\t\t\t{\n\t\t\t\tthis.injectDialogMenuSupertitles(child.title, child.children);\n\t\t\t}\n\t\t});\n\t}\n\n\tonFieldSelect(field: ?Field): void\n\t{\n\t\tif (!field)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst inputType = this.targetInput.tagName.toLowerCase();\n\n\t\tif (inputType === 'select')\n\t\t{\n\t\t\tlet expressionOption = this.targetInput.querySelector('[data-role=\"expression\"]');\n\t\t\tif (!expressionOption)\n\t\t\t{\n\t\t\t\texpressionOption = (\n\t\t\t\t\tthis.targetInput.appendChild(\n\t\t\t\t\t\tDom.create(\n\t\t\t\t\t\t\t'option',\n\t\t\t\t\t\t\t{attrs: {'data-role': 'expression'}}\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\texpressionOption.setAttribute('value', field.Expression);\n\t\t\texpressionOption.textContent = field['Expression'];\n\n\t\t\texpressionOption.selected = true;\n\t\t}\n\t\telse if (inputType === 'label')\n\t\t{\n\t\t\tthis.targetInput.textContent = field.Expression;\n\t\t\tconst hiddenInput = document.getElementById(this.targetInput.getAttribute('for'));\n\t\t\tif (hiddenInput)\n\t\t\t{\n\t\t\t\thiddenInput.value = field.Expression;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (this.replaceOnWrite)\n\t\t\t{\n\t\t\t\tthis.targetInput.value = field.Expression;\n\t\t\t\tthis.targetInput.selectionEnd = this.targetInput.value.length;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tlet beforePart = '';\n\t\t\t\tconst middlePart = field.Expression;\n\t\t\t\tlet afterPart = '';\n\t\t\t\tif (Type.isStringFilled(this.targetInput.value))\n\t\t\t\t{\n\t\t\t\t\tbeforePart = this.targetInput.value.substr(0, this.targetInput.selectionEnd);\n\t\t\t\t\tafterPart = this.targetInput.value.substr(this.targetInput.selectionEnd);\n\t\t\t\t}\n\n\t\t\t\tthis.targetInput.value = beforePart + middlePart + afterPart;\n\t\t\t\tthis.targetInput.selectionEnd = beforePart.length + middlePart.length;\n\t\t\t}\n\t\t}\n\n\t\tBX.fireEvent(this.targetInput, 'change');\n\t\tthis.emit('Field:Selected', { field });\n\t}\n\n\tdestroy()\n\t{\n\t\tif (this.#dialog)\n\t\t{\n\t\t\tthis.#dialog.destroy();\n\t\t}\n\t\tif (this.#switcherDialog)\n\t\t{\n\t\t\tthis.#switcherDialog.destroy();\n\t\t}\n\t}\n\n\tgetFields(): Array<Field>\n\t{\n\t\treturn enrichFieldsWithModifiers(this.basisFields, 'Document', { shortLink: false });\n\t}\n}\n","import { Type, Loc, Text, Dom, Tag, Runtime, Event } from 'main.core';\nimport { DateTimeFormat } from 'main.date';\nimport { Menu, MenuItem } from 'main.popup';\nimport { InlineSelector } from './inline-selector';\nimport { SelectorContext } from 'bizproc.automation';\n\nexport class InlineTimeSelector extends InlineSelector\n{\n\t#labelNode: HTMLElement = null;\n\t#inputNode: HTMLInputElement = null;\n\t#showDottedSelector: boolean;\n\n\t#timeValues: [] = [];\n\t#timeFormat: string;\n\n\t#selector: Menu;\n\t#chevron: HTMLSpanElement;\n\n\tconstructor(props: { context: SelectorContext, showValuesSelector: boolean })\n\t{\n\t\tsuper(props);\n\n\t\tthis.#fillTimeFormat();\n\t\tthis.#fillTimeValues();\n\n\t\tthis.#showDottedSelector = Type.isNil(props.showValuesSelector) ? true : Text.toBoolean(props.showValuesSelector);\n\t}\n\n\t#fillTimeFormat()\n\t{\n\t\tconst getFormat = (formatId) => (\n\t\t\tBX.Main.Date.convertBitrixFormat(Loc.getMessage(formatId)).replace(/:?\\s*s/, '')\n\t\t);\n\n\t\tconst dateFormat = getFormat('FORMAT_DATE');\n\t\tconst dateTimeFormat = getFormat('FORMAT_DATETIME');\n\t\tthis.#timeFormat = dateTimeFormat.replace(dateFormat, '').trim();\n\t}\n\n\t#fillTimeValues()\n\t{\n\t\tconst onclick = (event, item: MenuItem) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.#inputNode.value = Text.encode(item.text);\n\t\t\titem.getMenuWindow().close();\n\t\t};\n\n\t\tfor (let hour = 0; hour < 24; hour++)\n\t\t{\n\t\t\tthis.#timeValues.push({\n\t\t\t\tid: hour * 60,\n\t\t\t\ttext: this.#formatTime(hour, 0),\n\t\t\t\tonclick,\n\t\t\t}, {\n\t\t\t\tid: hour * 60 + 30,\n\t\t\t\ttext: this.#formatTime(hour, 30),\n\t\t\t\tonclick,\n\t\t\t});\n\t\t}\n\t}\n\n\t#formatTime(hour, minute): string\n\t{\n\t\tconst date = new Date();\n\t\tdate.setHours(hour, minute);\n\n\t\treturn DateTimeFormat.format(this.#timeFormat, date.getTime() / 1000);\n\t}\n\n\trenderWith(targetInput: Element): HTMLDivElement\n\t{\n\t\tthis.targetInput = Runtime.clone(targetInput);\n\t\tthis.targetInput.setAttribute('autocomplete', 'off');\n\n\t\tthis.parseTargetProperties();\n\t\tthis.replaceOnWrite = true;\n\n\t\tif (this.#showDottedSelector === false)\n\t\t{\n\t\t\treturn this.#labelNode;\n\t\t}\n\n\t\tconst { root, menuButton } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-select\">\n\t\t\t\t${this.#labelNode}\n\t\t\t\t<span\n\t\t\t\t\tref=\"menuButton\"\n\t\t\t\t\tonclick=\"${this.openMenu.bind(this)}\"\n\t\t\t\t\tclass=\"bizproc-automation-popup-select-dotted\"\n\t\t\t\t></span>\n\t\t\t</div>\n\t\t`;\n\t\tthis.menuButton = menuButton;\n\n\t\treturn root;\n\t}\n\n\tparseTargetProperties()\n\t{\n\t\tsuper.parseTargetProperties();\n\t\tthis.#init();\n\t}\n\n\t#init()\n\t{\n\t\tconst targetInput = this.targetInput;\n\t\tconst hasParentNode = Type.isDomNode(this.targetInput.parentNode);\n\t\tif (hasParentNode)\n\t\t{\n\t\t\tthis.targetInput = Runtime.clone(targetInput);\n\t\t}\n\n\t\tconst { root, chevron } = Tag.render`\n\t\t\t<span onclick=\"${this.#onLabelClick.bind(this)}\" style=\"width: 100%; position: relative\">\n\t\t\t\t${this.targetInput}\n\t\t\t\t<span \n\t\t\t\t\tref=\"chevron\"\n\t\t\t\t\tclass=\"ui-icon-set --chevron-down bizproc-automation-inline-time-selector-chevron\"\n\t\t\t\t></span>\n\t\t\t</span>\n\t\t`;\n\n\t\tthis.#labelNode = root;\n\t\tthis.#inputNode = this.targetInput;\n\t\tthis.#chevron = chevron;\n\n\t\tif (hasParentNode)\n\t\t{\n\t\t\tDom.replace(targetInput, this.#labelNode);\n\t\t}\n\t}\n\n\t#onLabelClick(event)\n\t{\n\t\tthis.#showTimeSelector();\n\t\tevent.preventDefault();\n\t}\n\n\t#showTimeSelector()\n\t{\n\t\tif (Type.isNil(this.#selector))\n\t\t{\n\t\t\tthis.#selector = new Menu({\n\t\t\t\tautoHide: true,\n\t\t\t\tbindElement: this.#labelNode,\n\t\t\t\titems: this.#timeValues,\n\t\t\t\tmaxHeight: 230,\n\t\t\t\twidth: this.#labelNode.offsetWidth || this.#labelNode.clientWidth || 100,\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: () => {\n\t\t\t\t\t\tif (Dom.hasClass(this.#chevron, '--chevron-up'))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tDom.toggleClass(this.#chevron, ['--chevron-down', '--chevron-up']);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.#selector.show();\n\t\tif (Dom.hasClass(this.#chevron, '--chevron-down'))\n\t\t{\n\t\t\tDom.toggleClass(this.#chevron, ['--chevron-down', '--chevron-up']);\n\t\t}\n\t}\n}\n","import {\n\tDesigner,\n\tFileSelector,\n\tInlineSelector,\n\tInlineSelectorHtml,\n\tSaveStateCheckbox,\n\tTimeSelector,\n\tUserSelector,\n\tMenuSelector,\n} from 'bizproc.automation';\nimport { Type } from 'main.core';\nimport { InlineTimeSelector } from './inline-time-selector';\n\nexport class Manager\n{\n\tstatic SELECTOR_ROLE_USER = 'user-selector';\n\tstatic SELECTOR_ROLE_FILE = 'file-selector';\n\tstatic SELECTOR_ROLE_INLINE = 'inline-selector-target';\n\tstatic SELECTOR_ROLE_INLINE_HTML = 'inline-selector-html';\n\tstatic SELECTOR_ROLE_TIME = 'time-selector';\n\tstatic SELECTOR_ROLE_SAVE_STATE = 'save-state-checkbox';\n\tstatic SELECTOR_ROLE_INLINE_TIME = 'inline-selector-time';\n\tstatic SELECTOR_ROLE_MENU = 'menu-selector';\n\n\tstatic getSelectorByTarget(targetInput: HTMLElement): ?InlineSelector\n\t{\n\t\t// TODO - save created selectors with Manager\n\t\tconst template = Designer.getInstance().getRobotSettingsDialog()?.template;\n\n\t\tif (template && Type.isArray(template.robotSettingsControls))\n\t\t{\n\t\t\treturn template.robotSettingsControls.find(selector => selector.targetInput === targetInput);\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tstatic createSelectorByRole(role: string, selectorProps: object): InlineSelector | SaveStateCheckbox\n\t{\n\t\tif (role === this.SELECTOR_ROLE_USER)\n\t\t{\n\t\t\treturn new UserSelector(selectorProps);\n\t\t}\n\t\telse if (role === this.SELECTOR_ROLE_FILE)\n\t\t{\n\t\t\treturn new FileSelector(selectorProps);\n\t\t}\n\t\telse if (role === this.SELECTOR_ROLE_INLINE)\n\t\t{\n\t\t\treturn new InlineSelector(selectorProps);\n\t\t}\n\t\telse if (role === this.SELECTOR_ROLE_INLINE_HTML)\n\t\t{\n\t\t\treturn new InlineSelectorHtml(selectorProps);\n\t\t}\n\t\telse if (role === this.SELECTOR_ROLE_INLINE_TIME)\n\t\t{\n\t\t\treturn new InlineTimeSelector(selectorProps);\n\t\t}\n\t\telse if (role === this.SELECTOR_ROLE_TIME)\n\t\t{\n\t\t\treturn new TimeSelector(selectorProps);\n\t\t}\n\t\telse if (role === this.SELECTOR_ROLE_SAVE_STATE)\n\t\t{\n\t\t\treturn new SaveStateCheckbox(selectorProps);\n\t\t}\n\t\telse if (role === this.SELECTOR_ROLE_MENU)\n\t\t{\n\t\t\treturn new MenuSelector(selectorProps);\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn undefined;\n\t\t}\n\t}\n}\n","import { SelectorContext, Condition, ConditionGroup } from 'bizproc.automation';\nimport { InlineSelector } from './inline-selector';\nimport { Field } from './types';\n\nexport class InlineSelectorCondition extends InlineSelector\n{\n\t#condition: Condition;\n\n\tconstructor(props: {\n\t\tcontext: SelectorContext,\n\t\tcondition: Condition,\n\t})\n\t{\n\t\tsuper(props);\n\n\t\tthis.#condition = props.condition;\n\t}\n\n\trenderTo(target: Element)\n\t{\n\t\tthis.targetInput = target;\n\t\tthis.menuButton = target;\n\n\t\tthis.parseTargetProperties();\n\t\tthis.bindTargetEvents();\n\t}\n\n\tfillGroups(): void\n\t{\n\t\tthis.fillFieldsGroups();\n\t}\n\n\tonMenuOpen(): void\n\t{\n\t\tthis.emit('onOpenMenu', {\n\t\t\tselector: this,\n\t\t\t// TODO - rename\n\t\t\tisMixedCondition: this.#isMixedConditionGroup(),\n\t\t});\n\t}\n\n\tonFieldSelect(field: ?Field)\n\t{\n\t\tthis.emit('change', { field });\n\t}\n\n\t#isMixedConditionGroup(): boolean\n\t{\n\t\treturn (\n\t\t\tthis.#condition\n\t\t\t&& this.#condition.parentGroup\n\t\t\t&& this.#condition.parentGroup.type === ConditionGroup.CONDITION_TYPE.Mixed\n\t\t);\n\t}\n\n\tgetFields(): Array<Field>\n\t{\n\t\treturn this.context.fields.map((field) => ({\n\t\t\t...field,\n\t\t\tObjectId: 'Document',\n\t\t}));\n\t}\n}","import { Tag } from 'main.core';\nimport { Field } from './types';\nimport { InlineSelector } from './inline-selector';\n\nexport class InlineSelectorHtml extends InlineSelector\n{\n\t#editorNode: ?BXHtmlEditor;\n\t#eventHandlers = {\n\t\t'OnEditorInitedAfter': this.#bindEditorHooks.bind(this),\n\t}\n\n\tdestroy()\n\t{\n\t\tthis.#unbindEvents();\n\t}\n\n\trenderTo(targetInput: Element)\n\t{\n\t\tthis.targetInput = targetInput;\n\t\tthis.#editorNode = targetInput.querySelector('.bx-html-editor');\n\t\tthis.menuButton = Tag.render`\n\t\t\t<span\n\t\t\t\tonclick=\"${this.openMenu.bind(this)}\"\n\t\t\t\tclass=\"bizproc-automation-popup-select-dotted\"\n\t\t\t></span>\n\t\t`;\n\n\t\tthis.parseTargetProperties();\n\t\tthis.bindTargetEvents()\n\n\t\ttargetInput.firstElementChild.appendChild(this.menuButton);\n\n\t\tthis.#bindEvents();\n\t}\n\n\t#bindEvents(): void\n\t{\n\t\tfor (const [name, handler] of Object.entries(this.#eventHandlers))\n\t\t{\n\t\t\tBX.addCustomEvent(name, handler);\n\t\t}\n\t}\n\n\t#unbindEvents(): void\n\t{\n\t\tfor (const [name, handler] of Object.entries(this.#eventHandlers))\n\t\t{\n\t\t\tBX.removeCustomEvent(name, handler);\n\t\t}\n\t}\n\n\t#bindEditorHooks(editor): void\n\t{\n\t\tif (editor.dom.cont !== this.#editorNode)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tlet header = '';\n\t\tlet footer = '';\n\n\t\tconst cutHeader = (content: string, shouldSaveHeader: boolean = false) => {\n\t\t\treturn content.replace(/(^[\\s\\S]*?)(<body.*?>)/i, (str) => {\n\t\t\t\tif (shouldSaveHeader)\n\t\t\t\t{\n\t\t\t\t\theader = str;\n\t\t\t\t}\n\n\t\t\t\treturn '';\n\t\t\t});\n\t\t};\n\n\t\tconst cutFooter = (content: string, shouldSaveFooter: boolean = false) => {\n\t\t\treturn content.replace(/(<\\/body>[\\s\\S]*?$)/i, (str) => {\n\t\t\t\tif (shouldSaveFooter)\n\t\t\t\t{\n\t\t\t\t\tfooter = str;\n\t\t\t\t}\n\n\t\t\t\treturn '';\n\t\t\t});\n\t\t}\n\n\t\tBX.addCustomEvent(editor, 'OnParse', function (mode)\n\t\t{\n\t\t\tif (!mode)\n\t\t\t{\n\t\t\t\tthis.content = cutFooter(cutHeader(this.content, true), true);\n\t\t\t}\n\t\t});\n\n\t\tBX.addCustomEvent(editor, 'OnAfterParse', function (mode)\n\t\t{\n\t\t\tif (mode)\n\t\t\t{\n\t\t\t\tlet content = cutFooter(cutHeader(this.content));\n\n\t\t\t\tif (header !== '' && footer !== '')\n\t\t\t\t{\n\t\t\t\t\tcontent = header + content + footer;\n\t\t\t\t}\n\n\t\t\t\tthis.content = content;\n\t\t\t}\n\t\t});\n\t}\n\n\tonFieldSelect(field: ?Field): void\n\t{\n\t\tconst insertText = field.Expression;\n\t\tconst editor = this.#getEditor();\n\n\t\tif (editor && editor.InsertHtml)\n\t\t{\n\t\t\tif (editor.synchro.IsFocusedOnTextarea())\n\t\t\t{\n\t\t\t\teditor.textareaView.Focus();\n\t\t\t\teditor.textareaView.WrapWith('', '', insertText);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\teditor.InsertHtml(insertText);\n\t\t\t}\n\t\t\teditor.synchro.Sync();\n\t\t}\n\t}\n\n\tonBeforeSave(): void\n\t{\n\t\tconst editor = this.#getEditor();\n\t\tif (editor && editor.SaveContent)\n\t\t{\n\t\t\teditor.SaveContent();\n\t\t}\n\t}\n\n\tonPopupResize()\n\t{\n\t\tconst editor = this.#getEditor();\n\t\tif (editor && editor.ResizeSceleton)\n\t\t{\n\t\t\teditor.ResizeSceleton();\n\t\t}\n\t}\n\n\t#getEditor(): ?BXHtmlEditor\n\t{\n\t\tif (this.#editorNode)\n\t\t{\n\t\t\tconst editorId = this.#editorNode.id.split('-');\n\t\t\treturn BXHtmlEditor.Get(editorId[editorId.length - 1]);\n\t\t}\n\n\t\treturn null;\n\t}\n}","import { SelectorContext } from 'bizproc.automation';\n\nexport class SaveStateCheckbox\n{\n\t#context: SelectorContext;\n\t#checkbox: Element;\n\t#needSync: boolean;\n\n\tconstructor(props: {\n\t\tcontext: SelectorContext,\n\t\tcheckbox: Element,\n\t\tneedSync: boolean,\n\t})\n\t{\n\t\tthis.#context = props.context;\n\t\tthis.#checkbox = props.checkbox;\n\t\tthis.#needSync = props.needSync;\n\n\t\tif (props.needSync)\n\t\t{\n\t\t\tconst category = 'save_state_checkbox';\n\t\t\tconst savedState = this.#context.get('userOptions').get(category, this.#getKey(), 'N');\n\t\t\tif (savedState === 'Y')\n\t\t\t{\n\t\t\t\tthis.#checkbox.checked = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tdestroy(): void\n\t{\n\t\tif (this.#needSync)\n\t\t{\n\t\t\tthis.#context.get('userOptions').set('save_state_checkboxes', this.#getKey(), this.#getValue());\n\t\t}\n\t}\n\n\t#getKey(): ?string\n\t{\n\t\treturn this.#checkbox.getAttribute('data-save-state-key');\n\t}\n\n\t#getValue(): string\n\t{\n\t\treturn this.#checkbox.checked ? 'Y'\t : 'N';\n\t}\n}","import { Dom, Text, Event, Type, Tag } from 'main.core';\nimport { MenuManager } from 'main.popup';\nimport { SelectorContext } from 'bizproc.automation';\nimport { EventEmitter } from 'main.core.events';\n\nconst MENU_ITEM_CLASS_ACTIVE = 'menu-popup-item-accept';\nconst MENU_ITEM_CLASS_INACTIVE = 'menu-popup-item-none';\n\ntype Item = {\n\ttitle: string;\n\tvalue: mixed;\n}\n\ntype MenuItem = {\n\tid: string;\n\tclassName: string;\n\thtml: string;\n\tonclick: Function;\n}\nexport class MenuSelector extends EventEmitter\n{\n\t#selectedValues: Set = new Set();\n\t#items: Item[];\n\t#menuPopup: ?Menu = null;\n\t#openMenuButton: Element;\n\t#targetInput: Element;\n\t#name: string;\n\t#multiple: boolean;\n\t#fieldName: string;\n\t#hiddenSelect: ?Element;\n\tconstructor(props: {\n\t\tcontext: SelectorContext,\n\t})\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Bizproc.Automation.Selector');\n\t\tthis.context = props.context;\n\t}\n\n\t#parseTargetProperties()\n\t{\n\t\tconst config = JSON.parse(this.#targetInput.getAttribute('data-config'));\n\t\tthis.#name = config.name ?? 'Notification';\n\t\tthis.#fieldName = config.fieldName ?? '';\n\t\tthis.#items = config.options ? this.prepareItems(config.options) : [];\n\t\tthis.#multiple = config.multiple ?? false;\n\t\tif (!Type.isNil(config.selected))\n\t\t{\n\t\t\tthis.#setValues(config.selected);\n\t\t}\n\t}\n\n\trenderTo(targetInput: Element)\n\t{\n\t\tthis.#targetInput = targetInput;\n\n\t\tthis.#parseTargetProperties();\n\t\tthis.#openMenuButton = Tag.render`<a class=\"bizproc-automation-popup-settings-button\">${Text.encode(this.#name)}</a>`;\n\t\tEvent.bind(this.#openMenuButton, 'click', this.#onShowPopup.bind(this));\n\n\t\tDom.append(this.#openMenuButton, this.#targetInput);\n\t}\n\n\tprepareItems(options): Item[]\n\t{\n\t\treturn Object.entries(options).map(([key, value]) => ({\n\t\t\ttitle: value,\n\t\t\tvalue: key,\n\t\t}));\n\t}\n\n\t#getPreparedMenuItems(): MenuItem[]\n\t{\n\t\treturn this.#items.map((item: Item) => this.#getPreparedMenuItem(item));\n\t}\n\n\t#getPreparedMenuItem(item: Item): MenuItem\n\t{\n\t\treturn {\n\t\t\tid: `menu-selector-menu-id-${item.value}`,\n\t\t\tclassName: this.#isValueSelected(item.value) ? MENU_ITEM_CLASS_ACTIVE : MENU_ITEM_CLASS_INACTIVE,\n\t\t\tonclick: this.#onMenuItemClick.bind(this, item.value),\n\t\t\thtml: Text.encode(item.title),\n\t\t};\n\t}\n\n\t#isValueSelected(value: number | string): boolean\n\t{\n\t\treturn this.#selectedValues.has(value);\n\t}\n\n\t#onMenuItemClick(value: number | string, event: PointerEvent, item)\n\t{\n\t\tif (this.#isValueSelected(value))\n\t\t{\n\t\t\tthis.#removeValue(value);\n\t\t\tDom.removeClass(item.getContainer(), MENU_ITEM_CLASS_ACTIVE);\n\t\t\tDom.addClass(item.getContainer(), MENU_ITEM_CLASS_INACTIVE);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (this.#multiple)\n\t\t\t{\n\t\t\t\tthis.#addValue(value);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tfor (const menuItem of this.#menuPopup.menuItems)\n\t\t\t\t{\n\t\t\t\t\tDom.removeClass(menuItem.getContainer(), MENU_ITEM_CLASS_ACTIVE);\n\t\t\t\t}\n\t\t\t\tthis.#setValues([value]);\n\t\t\t}\n\n\t\t\tDom.removeClass(item.getContainer(), MENU_ITEM_CLASS_INACTIVE);\n\t\t\tDom.addClass(item.getContainer(), MENU_ITEM_CLASS_ACTIVE);\n\t\t}\n\t}\n\n\t#removeValue(value)\n\t{\n\t\tthis.#selectedValues.delete(value);\n\t}\n\n\t#addValue(value)\n\t{\n\t\tthis.#selectedValues.add(value);\n\t}\n\n\t#onShowPopup()\n\t{\n\t\tif (!this.#menuPopup)\n\t\t{\n\t\t\tconst menuItems = this.#getPreparedMenuItems();\n\t\t\tconst menuParams = {\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tautoHide: true,\n\t\t\t\tcacheable: true,\n\t\t\t};\n\t\t\tthis.#menuPopup = MenuManager.create(Text.getRandom(), this.#openMenuButton, menuItems, menuParams);\n\t\t}\n\t\tthis.#menuPopup.show();\n\t}\n\n\tonBeforeSave()\n\t{\n\t\tconst hiddenSelect = Tag.render`\n\t\t\t<select\n\t\t\t\tname=\"${this.#fieldName + (this.#multiple ? '[]' : '')}\"\n\t\t\t\t${this.#multiple ? 'multiple' : ''}\n\t\t\t\thidden\n\t\t\t>\n\t\t\t</select>\n\t\t`;\n\t\tfor (const value of this.#selectedValues.values())\n\t\t{\n\t\t\tif (Type.isNil(value))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst hiddenOption = Tag.render`\n\t\t\t\t<option value=\"${value}\"></option>\n\t\t\t`;\n\t\t\thiddenOption.selected = true;\n\t\t\tDom.append(hiddenOption, hiddenSelect);\n\t\t}\n\n\t\tif (this.#hiddenSelect)\n\t\t{\n\t\t\tDom.replace(this.#hiddenSelect, hiddenSelect);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.append(hiddenSelect, this.#targetInput);\n\t\t}\n\t\tthis.#hiddenSelect = hiddenSelect;\n\t}\n\n\t#setValues(values: Array): void\n\t{\n\t\tthis.#clearAll();\n\n\t\tvalues.forEach((value: string) => {\n\t\t\tthis.#addValue(value);\n\t\t});\n\t}\n\n\t#clearAll(): void\n\t{\n\t\tif (this.#selectedValues.size === 0)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tthis.#selectedValues = new Set();\n\t}\n\n\tdestroy()\n\t{\n\t\tthis.#menuPopup?.close();\n\t}\n}\n","import { Type } from 'main.core';\nimport { InlineSelector } from './inline-selector';\n\nexport class UserSelector extends InlineSelector\n{\n\trenderTo(targetInput: Element)\n\t{\n\t\tthis.targetInput = targetInput;\n\t\tthis.menuButton = targetInput;\n\n\t\tthis.fieldProperty = JSON.parse(targetInput.getAttribute('data-property'));\n\t\tif (!this.fieldProperty)\n\t\t{\n\t\t\tthis.context.useSwitcherMenu = false;\n\t\t}\n\n\t\tconst additionalUserFields = this.context.get('additionalUserFields');\n\t\tthis.userSelector = BX.Bizproc.UserSelector.decorateNode(\n\t\t\ttargetInput,\n\t\t\t{\n\t\t\t\tadditionalFields: Type.isArray(additionalUserFields) ? additionalUserFields : [],\n\t\t\t},\n\t\t);\n\t}\n\n\tdestroy()\n\t{\n\t\tsuper.destroy();\n\n\t\tif (this.userSelector)\n\t\t{\n\t\t\tthis.userSelector.destroy();\n\t\t\tthis.userSelector = null;\n\t\t}\n\t}\n}","import { Type, Runtime, Tag, Dom, Event, Text, Loc } from 'main.core';\nimport { MenuManager } from 'main.popup';\nimport { SelectorContext, Helper } from 'bizproc.automation';\nimport { InlineSelector } from './inline-selector';\n\nexport class FileSelector extends InlineSelector\n{\n\tstatic TYPE = {\n\t\tNone: '',\n\t\tDisk: 'disk',\n\t\tFile: 'file',\n\t};\n\n\t#type: string = FileSelector.TYPE.None;\n\t#multiple: boolean = false;\n\t#required: boolean = false;\n\t#valueInputName: string = '';\n\t#typeInputName: string = '';\n\t#useDisk: boolean = false;\n\t#label: string = '';\n\t#labelFile: string = '';\n\t#labelDisk: string = '';\n\n\t#diskUploader: ?BX.Bizproc.Automation.DiskUploader = null;\n\n\t#diskControllerNode: ?HTMLDivElement = null;\n\t#fileItemsNode: ?HTMLSpanElement = null;\n\t#fileControllerNode: ?HTMLDivElement = null;\n\n\t#inputWrapper: HTMLElement;\n\t#menu: ?Menu;\n\n\tconstructor(props: { context: SelectorContext })\n\t{\n\t\tsuper(props);\n\n\t\tthis.context.set(\n\t\t\t'fileFields',\n\t\t\tthis.context.fields.filter((field) => field.Type === 'file'),\n\t\t);\n\t}\n\n\tdestroy()\n\t{\n\t\tif (this.#menu)\n\t\t{\n\t\t\tthis.#menu.close();\n\t\t}\n\t}\n\n\trenderTo(targetInput: Element)\n\t{\n\t\tthis.targetInput = targetInput;\n\n\t\tconst selected = this.parseTargetProperties();\n\n\t\tthis.targetInput.appendChild(this.#createBaseNode());\n\t\tthis.#showTypeControlLayout(selected);\n\t}\n\n\tparseTargetProperties()\n\t{\n\t\tlet config = JSON.parse(this.targetInput.getAttribute('data-config'));\n\t\tif (!Type.isPlainObject(config))\n\t\t{\n\t\t\tconfig = {};\n\t\t}\n\n\t\tif (config.type)\n\t\t{\n\t\t\tthis.#type = config.type;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#type = this.context.get('fileFields').length > 0 ? FileSelector.TYPE.File : FileSelector.TYPE.Disk;\n\t\t}\n\n\t\tthis.#multiple = config.multiple || false;\n\t\tthis.#required = config.required || false;\n\t\tthis.#valueInputName = config.valueInputName || '';\n\t\tthis.#typeInputName = config.typeInputName || '';\n\t\tthis.#useDisk = config.useDisk || false;\n\t\tthis.#label = config.label || 'Attachment';\n\t\tthis.#labelFile = config.labelFile || 'File';\n\t\tthis.#labelDisk = config.labelDisk || 'Disk';\n\n\t\tif (config.selected && config.selected.length > 0)\n\t\t{\n\t\t\treturn Runtime.clone(config.selected);\n\t\t}\n\t}\n\n\t#createBaseNode(): HTMLDivElement\n\t{\n\t\tconst idSalt = Helper.generateUniqueId();\n\t\tlet fileRadio = null;\n\n\t\tconst fileTypeOptions = [];\n\n\t\tif (this.context.get('fileFields').length > 0)\n\t\t{\n\t\t\tfileRadio = Tag.render`\n\t\t\t\t<input\n\t\t\t\t\tid=\"type-1${idSalt}\"\n\t\t\t\t\tclass=\"bizproc-automation-popup-select-input\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"${this.#typeInputName}\"\n\t\t\t\t\tvalue=\"${FileSelector.TYPE.File}\"\n\t\t\t\t\t${this.#type === FileSelector.TYPE.File ? 'checked' : ''}\n\t\t\t\t/>\n\t\t\t`;\n\t\t}\n\n\t\tconst diskFileRadio = Tag.render`\n\t\t\t<input\n\t\t\t\tid=\"type-2${idSalt}\"\n\t\t\t\tclass=\"bizproc-automation-popup-select-input\"\n\t\t\t\ttype=\"radio\"\n\t\t\t\tname=\"${this.#typeInputName}\"\n\t\t\t\tvalue=\"${FileSelector.TYPE.Disk}\"\n\t\t\t\t${this.#type === FileSelector.TYPE.Disk ? 'checked' : ''}\n\t\t\t/>\n\t\t`;\n\n\t\t// fileTypeOptions.push(Tag.render`\n\t\t// \t<span class=\"bizproc-automation-popup-settings-title\">${this.#label}:</span>\n\t\t// `);\n\n\t\tif (fileRadio)\n\t\t{\n\t\t\tfileTypeOptions.push(fileRadio, Tag.render`\n\t\t\t\t<label\n\t\t\t\t\tclass=\"bizproc-automation-popup-settings-link\"\n\t\t\t\t\tfor=\"type-1${idSalt}\"\n\t\t\t\t\tonclick=\"${this.#onTypeChange.bind(this, FileSelector.TYPE.File)}\"\n\t\t\t\t>\n\t\t\t\t${this.#labelFile}\n\t\t\t\t</label>\n\t\t\t`);\n\t\t}\n\n\t\tfileTypeOptions.push(diskFileRadio, Tag.render`\n\t\t\t<label\n\t\t\t\tclass=\"bizproc-automation-popup-settings-link\"\n\t\t\t\tfor=\"type-2${idSalt}\"\n\t\t\t\tonclick=\"${this.#onTypeChange.bind(this, FileSelector.TYPE.Disk)}\"\n\t\t\t>\n\t\t\t${this.#labelDisk}\n\t\t\t</label>\n\t\t`);\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-settings-block\">\n\t\t\t\t<span class=\"bizproc-automation-popup-settings-title\">${this.#label}:</span>\n\t\t\t\t<div class=\"bizproc-automation-popup-settings-tab-head\">\n\t\t\t\t\t${fileTypeOptions}\n\t\t\t\t</div>\t\t\t\t\t\t\t\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#showTypeControlLayout(selected: Array): void\n\t{\n\t\tif (this.#type === FileSelector.TYPE.Disk)\n\t\t{\n\t\t\tthis.#hideFileControllerLayout();\n\t\t\tthis.#showDiskControllerLayout(selected);\n\t\t}\n\t\telse if (this.#type === FileSelector.TYPE.File)\n\t\t{\n\t\t\tthis.#hideDiskControllerLayout();\n\t\t\tthis.#showFileControllerLayout(selected);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#hideFileControllerLayout();\n\t\t\tthis.#hideDiskControllerLayout();\n\t\t}\n\t}\n\n\t#showDiskControllerLayout(selected: Array): void\n\t{\n\t\tif (this.#diskControllerNode)\n\t\t{\n\t\t\tDom.show(this.#diskControllerNode);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#diskControllerNode = Dom.create('div');\n\n\t\t\tthis.targetInput.appendChild(this.#diskControllerNode);\n\n\t\t\tconst diskUploader = this.#getDiskUploader();\n\t\t\tdiskUploader.layout(this.#diskControllerNode);\n\t\t\tdiskUploader.show(true);\n\n\t\t\tif (selected)\n\t\t\t{\n\t\t\t\tthis.addItems(selected);\n\t\t\t}\n\t\t}\n\t}\n\n\t#hideDiskControllerLayout(): void\n\t{\n\t\tif (this.#diskControllerNode)\n\t\t{\n\t\t\tDom.hide(this.#diskControllerNode);\n\t\t}\n\t}\n\n\t#showFileControllerLayout(selected: Array): void\n\t{\n\t\tif (this.#fileControllerNode)\n\t\t{\n\t\t\tDom.show(this.#fileControllerNode);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#fileItemsNode = Dom.create('span', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: 'bizproc-automation-popup-settings-tab-item-box',\n\t\t\t\t},\n\t\t\t});\n\t\t\tthis.#fileControllerNode = Dom.create('div', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: 'bizproc-automation-popup-settings-tab-inner',\n\t\t\t\t},\n\t\t\t\tchildren: [this.#fileItemsNode],\n\t\t\t});\n\t\t\tthis.targetInput.appendChild(this.#fileControllerNode);\n\t\t\tconst addButtonNode = Dom.create('a', {\n\t\t\t\tattrs: { className: 'bizproc-automation-popup-settings-link bizproc-automation-popup-settings-link-thin' },\n\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_ADD_FILE'),\n\t\t\t});\n\n\t\t\tconst addButtonDesc = Dom.create('div', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: 'bizproc-automation-popup-settings-desc',\n\t\t\t\t},\n\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_ADD_FILE_LEGEND'),\n\t\t\t});\n\n\t\t\tDom.append(addButtonDesc, addButtonNode);\n\n\t\t\tthis.#fileControllerNode.appendChild(addButtonNode);\n\n\t\t\tEvent.bind(addButtonNode, 'click', this.#onFileFieldAddClick.bind(this, addButtonNode));\n\n\t\t\tif (selected)\n\t\t\t{\n\t\t\t\tthis.addItems(selected);\n\t\t\t}\n\t\t}\n\t}\n\n\t#hideFileControllerLayout(): void\n\t{\n\t\tif (this.#fileControllerNode)\n\t\t{\n\t\t\tDom.hide(this.#fileControllerNode);\n\t\t}\n\t}\n\n\t#getDiskUploader(): BX.Bizproc.Automation.DiskUploader\n\t{\n\t\tif (!this.#diskUploader)\n\t\t{\n\t\t\tthis.#diskUploader = BX.Bizproc.Automation.DiskUploader.create(\n\t\t\t\t'',\n\t\t\t\t{\n\t\t\t\t\tmsg: {\n\t\t\t\t\t\tdiskAttachFiles: Loc.getMessage('BIZPROC_AUTOMATION_CMP_DISK_ATTACH_FILE'),\n\t\t\t\t\t\tdiskAttachedFiles: Loc.getMessage('BIZPROC_AUTOMATION_CMP_DISK_ATTACHED_FILES'),\n\t\t\t\t\t\tdiskSelectFile: Loc.getMessage('BIZPROC_AUTOMATION_CMP_DISK_SELECT_FILE'),\n\t\t\t\t\t\tdiskSelectFileLegend: Loc.getMessage('BIZPROC_AUTOMATION_CMP_DISK_SELECT_FILE_LEGEND_MSGVER_1'),\n\t\t\t\t\t\tdiskUploadFile: Loc.getMessage('BIZPROC_AUTOMATION_CMP_DISK_UPLOAD_FILE'),\n\t\t\t\t\t\tdiskUploadFileLegend: Loc.getMessage('BIZPROC_AUTOMATION_CMP_DISK_UPLOAD_FILE_LEGEND'),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tthis.#diskUploader.setMode(1);\n\t\t}\n\n\t\treturn this.#diskUploader;\n\t}\n\n\t#onTypeChange(newType: string): void\n\t{\n\t\tif (this.#type !== newType)\n\t\t{\n\t\t\tthis.#type = newType;\n\t\t\tthis.#showTypeControlLayout();\n\t\t}\n\t}\n\n\t#addFileItem(item)\n\t{\n\t\tif (this.#isFileItemSelected(item))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst node = this.#createFileItemNode(item);\n\t\tif (!this.#multiple)\n\t\t{\n\t\t\tDom.clean(this.#fileItemsNode);\n\t\t}\n\n\t\tthis.#fileItemsNode.appendChild(node);\n\t}\n\n\t#isFileItemSelected(item: object)\n\t{\n\t\treturn Boolean(this.#fileItemsNode.querySelector(`[data-file-id=\"${item.id}\"]`));\n\t}\n\n\taddItems(items: Array<object>)\n\t{\n\t\tif (this.#type === FileSelector.TYPE.File)\n\t\t{\n\t\t\tfor (const fileItem of items)\n\t\t\t{\n\t\t\t\tthis.#addFileItem(fileItem);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis\n\t\t\t\t.#getDiskUploader()\n\t\t\t\t.setValues(\n\t\t\t\t\tFileSelector.#convertToDiskItems(items),\n\t\t\t\t);\n\t\t}\n\t}\n\n\tstatic #convertToDiskItems(items: Array<object>)\n\t{\n\t\treturn items.map((item) => ({\n\t\t\tID: item.id,\n\t\t\tNAME: item.name,\n\t\t\tSIZE: item.size,\n\t\t\tVIEW_URL: '',\n\t\t}));\n\t}\n\n\t#removeFileItem(item)\n\t{\n\t\tconst itemNode = this.#fileItemsNode.querySelector(`[data-file-id=\"${item.id}\"]`);\n\t\tif (itemNode)\n\t\t{\n\t\t\tthis.#fileItemsNode.removeChild(itemNode);\n\t\t}\n\t}\n\n\t#onFileFieldAddClick(addButtonNode, event)\n\t{\n\t\tconst self = this;\n\t\tif (!this.#menu)\n\t\t{\n\t\t\tthis.#menu = MenuManager.create(\n\t\t\t\tHelper.generateUniqueId(),\n\t\t\t\taddButtonNode,\n\t\t\t\tthis.context.get('fileFields').map((field) => ({\n\t\t\t\t\ttext: Text.encode(field.Name),\n\t\t\t\t\tfield,\n\t\t\t\t\tonclick()\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\tself.onFieldSelect(field);\n\t\t\t\t\t},\n\t\t\t\t})),\n\t\t\t\t{\n\t\t\t\t\tautoHide: true,\n\t\t\t\t\toffsetLeft: Dom.getPosition(addButtonNode).width / 2,\n\t\t\t\t\tangle: {\n\t\t\t\t\t\tposition: 'top',\n\t\t\t\t\t\toffset: 0,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tthis.#menu.show();\n\t\tevent.preventDefault();\n\t}\n\n\tonFieldSelect(field)\n\t{\n\t\tthis.#addFileItem({\n\t\t\tid: field.Id,\n\t\t\texpression: field.Expression,\n\t\t\tname: field.Name,\n\t\t\ttype: FileSelector.TYPE.File,\n\t\t});\n\t}\n\n\t#createFileItemNode(item)\n\t{\n\t\tconst itemField = this.context.get('fileFields').find((field) => field.Expression === item.expression);\n\t\tconst label = itemField?.Name || '';\n\n\t\treturn Tag.render`\n\t\t\t<span\n\t\t\t\tclass=\"bizproc-automation-popup-autocomplete-item\"\n\t\t\t\tdata-file-id=\"${item.id}\"\n\t\t\t\tdata-file-expression=\"${item.expression}\"\n\t\t\t>\n\t\t\t\t<span class=\"bizproc-automation-popup-autocomplete-name\">${label}</span>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"bizproc-automation-popup-autocomplete-delete\"\n\t\t\t\t\tonclick=\"${this.#removeFileItem.bind(this, item)}\"\n\t\t\t\t></span>\n\t\t\t</span>\n\t\t`;\n\t}\n\n\tonBeforeSave()\n\t{\n\t\tlet ids = [];\n\t\tif (this.#type === FileSelector.TYPE.Disk)\n\t\t{\n\t\t\tids = this.#getDiskUploader().getValues();\n\t\t}\n\t\telse if (this.#type === FileSelector.TYPE.File)\n\t\t{\n\t\t\tids = (\n\t\t\t\t[...this.#fileItemsNode.childNodes]\n\t\t\t\t\t.map((node) => node.getAttribute('data-file-expression'))\n\t\t\t\t\t.filter((id) => id !== '')\n\t\t\t);\n\t\t}\n\n\t\tconst wrapper = Tag.render`<div></div>`;\n\t\tfor (const id of ids)\n\t\t{\n\t\t\tDom.append(\n\t\t\t\tTag.render`\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\t\tname=\"${this.#valueInputName + (this.#multiple ? '[]' : '')}\"\n\t\t\t\t\t\tvalue=\"${id}\"\n\t\t\t\t\t/>\n\t\t\t\t`,\n\t\t\t\twrapper,\n\t\t\t);\n\t\t}\n\n\t\tif (this.#inputWrapper)\n\t\t{\n\t\t\tDom.replace(this.#inputWrapper, wrapper);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.append(wrapper, this.targetInput);\n\t\t}\n\t\tthis.#inputWrapper = wrapper;\n\t}\n}\n","import { Event, Loc } from 'main.core';\nimport { InlineSelector } from './inline-selector';\n\nexport class TimeSelector extends InlineSelector\n{\n\t#clockInstance;\n\n\tdestroy()\n\t{\n\t\tif (this.#clockInstance)\n\t\t{\n\t\t\tthis.#clockInstance.closeWnd();\n\t\t}\n\t}\n\n\trenderTo(targetInput: Element)\n\t{\n\t\tthis.targetInput = targetInput; //this.targetInput = Runtime.clone(targetInput);\n\n\t\tconst datetime = new Date();\n\t\tdatetime.setHours(0, 0, 0, 0);\n\t\tdatetime.setTime(datetime.getTime() + this.#getCurrentTime() * 1000);\n\n\t\tthis.targetInput.value = this.constructor.#formatTime(datetime);\n\n\t\tEvent.bind(targetInput, 'click', this.showClock.bind(this));\n\t}\n\n\tshowClock(): void\n\t{\n\t\tif (!this.#clockInstance)\n\t\t{\n\t\t\tthis.#clockInstance = new BX.CClockSelector({\n\t\t\t\tstart_time: this.#getCurrentTime(),\n\t\t\t\tnode: this.targetInput,\n\t\t\t\tcallback: this.#onTimeSelect.bind(this),\n\t\t\t});\n\t\t}\n\n\t\tthis.#clockInstance.Show();\n\t}\n\n\t#onTimeSelect(time): void\n\t{\n\t\tthis.targetInput.value = time;\n\t\tBX.fireEvent(this.targetInput, 'change');\n\t\tthis.#clockInstance.closeWnd();\n\t}\n\n\t#getCurrentTime(): number\n\t{\n\t\treturn this.#convertTimeToSeconds(this.targetInput.value);\n\t}\n\n\t#convertTimeToSeconds(time: string): number\n\t{\n\t\tconst timeParts = time.split(/[\\s:]+/).map(part => parseInt(part));\n\n\t\tlet [hours, minutes] = timeParts;\n\t\tif (timeParts.length === 3)\n\t\t{\n\t\t\tconst period = timeParts[2];\n\n\t\t\tif (period === 'pm' && hours < 12)\n\t\t\t{\n\t\t\t\thours += 12;\n\t\t\t}\n\t\t\telse if (period === 'am' && hours === 12)\n\t\t\t{\n\t\t\t\thours = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn hours * 3600 + minutes * 60;\n\t}\n\n\tstatic #formatTime(datetime: Date): string\n\t{\n\t\tconst getFormat = (formatId) => (\n\t\t\tBX.date.convertBitrixFormat(Loc.getMessage(formatId)).replace(/:?\\s*s/, '')\n\t\t);\n\n\t\tconst dateFormat = getFormat('FORMAT_DATE');\n\t\tconst timeFormat = getFormat('FORMAT_DATETIME').replace(dateFormat, '').trim();\n\n\t\treturn BX.date.format(timeFormat, datetime);\n\t}\n}","import { Type, Loc, Event, Dom, Text, Tag } from 'main.core';\nimport { Helper } from './helper';\nimport { DelayInterval } from './delay-interval';\nimport { InlineTimeSelector } from './selectors/inline-time-selector';\nimport { MenuManager, Popup, MenuItem } from 'main.popup';\nimport { getGlobalContext } from './automation';\nimport { Button } from 'ui.buttons';\nimport { DateTimeFormat } from 'main.date';\n\nimport 'ui.forms';\nimport 'ui.icon-set.actions';\nimport 'ui.hint';\n\nexport class DelayIntervalSelector\n{\n\tbasisFields: Array;\n\tonchange: () => void;\n\tlabelNode;\n\tuseAfterBasis;\n\tminLimitM;\n\tshowWaitWorkDay;\n\n\tdelay;\n\n\tconstructor(options)\n\t{\n\t\tthis.basisFields = [];\n\t\tthis.onchange = null;\n\n\t\tif (Type.isPlainObject(options))\n\t\t{\n\t\t\tthis.labelNode = options.labelNode;\n\t\t\tthis.useAfterBasis = options.useAfterBasis;\n\n\t\t\tif (Type.isArray(options.basisFields))\n\t\t\t{\n\t\t\t\tthis.basisFields = options.basisFields;\n\t\t\t}\n\t\t\tthis.onchange = options.onchange;\n\t\t\tthis.minLimitM = options.minLimitM;\n\t\t\tthis.showWaitWorkDay = options.showWaitWorkDay;\n\t\t}\n\t}\n\n\tinit(delay)\n\t{\n\t\tthis.delay = delay;\n\t\tthis.setLabelText();\n\t\tthis.bindLabelNode();\n\t\tthis.prepareBasisFields();\n\t}\n\n\tsetLabelText()\n\t{\n\t\tif (this.delay && this.labelNode)\n\t\t{\n\t\t\tthis.labelNode.textContent = this.delay.format(\n\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_AT_ONCE_2'),\n\t\t\t\tthis.basisFields,\n\t\t\t);\n\t\t}\n\t}\n\n\tbindLabelNode()\n\t{\n\t\tif (this.labelNode)\n\t\t{\n\t\t\tEvent.bind(this.labelNode, 'click', this.onLabelClick.bind(this));\n\t\t}\n\t}\n\n\tonLabelClick(event)\n\t{\n\t\tthis.showDelayIntervalPopup();\n\t\tevent.preventDefault();\n\t}\n\n\tshowDelayIntervalPopup()\n\t{\n\t\tconst delay = this.delay;\n\t\tconst uid = Helper.generateUniqueId();\n\n\t\tconst { root: form, workTimeCheckBox } = Tag.render`\n\t\t\t <form class=\"bizproc-automation-popup-select-block\">\n\t\t\t\t${this.#createNowControlNode(uid)}\n\t\t\t\t${this.createAfterControlNode()}\n\t\t\t\t${this.basisFields.length > 0 ? this.createBeforeControlNode() : ''}\n\t\t\t\t${this.basisFields.length > 0 ? this.createInControlNode() : ''}\n\t\t\t\t<div class=\"bizproc-automation-popup-settings__subtitle ui-typography-heading-h6\">\n\t\t\t\t\t${Loc.getMessage('BIZPROC_JS_AUTOMATION_DELAY_INTERVAL_ADDITIONAL_SETTINGS')}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bizproc-automation-popup-settings__checkbox-label\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tref=\"workTimeCheckBox\"\n\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings__checkbox\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tid=\"${uid}worktime\"\n\t\t\t\t\t\tname=\"worktime\"\n\t\t\t\t\t\tvalue=\"1\"\n\t\t\t\t\t\tstyle=\"vertical-align: middle\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label for=\"${uid}worktime\" class=\"bizproc-automation-popup-settings-lbl\">\n\t\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_DELAY_WORK_TIME_MSGVER_1')}\n\t\t\t\t\t</label>\n\t\t\t\t\t<span \n\t\t\t\t\t\tclass=\"bizproc-automation-status-help bizproc-automation-status-help-right\"\n\t\t\t\t\t\tdata-hint=\"${Loc.getMessage('BIZPROC_AUTOMATION_DELAY_WORK_TIME_HELP')}\"\n\t\t\t\t\t></span>\n\t\t\t\t</div>\n\t\t\t\t${this.showWaitWorkDay ? this.#createWaitWorkDayNode() : ''}\n\t\t\t</form>\n\t\t`;\n\t\tif (delay.workTime)\n\t\t{\n\t\t\tDom.attr(workTimeCheckBox, 'checked', 'checked');\n\t\t}\n\t\tBX.UI.Hint.init(form);\n\n\t\tconst popup = new Popup({\n\t\t\tid: Helper.generateUniqueId(),\n\t\t\tbindElement: this.labelNode,\n\t\t\tcontent: form,\n\t\t\tcloseByEsc: true,\n\t\t\tbuttons: [\n\t\t\t\tnew Button({\n\t\t\t\t\tcolor: Button.Color.PRIMARY,\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_JS_AUTOMATION_CHOOSE_BUTTON_CAPS'),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tthis.saveFormData(new FormData(form));\n\t\t\t\t\t\tpopup.close();\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tnew Button({\n\t\t\t\t\tcolor: Button.Color.LINK,\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_JS_AUTOMATION_CANCEL_BUTTON_CAPS'),\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tpopup.close();\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\twidth: 482,\n\t\t\tpadding: 20,\n\t\t\tcloseIcon: false,\n\t\t\tautoHide: true,\n\t\t\tevents: {\n\t\t\t\tonPopupClose: () => {\n\t\t\t\t\tif (this.fieldsMenu)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.fieldsMenu.popupWindow.close();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.valueTypeMenu)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.valueTypeMenu.popupWindow.close();\n\t\t\t\t\t}\n\n\t\t\t\t\tpopup.destroy();\n\t\t\t\t},\n\t\t\t},\n\t\t\ttitleBar: false,\n\t\t\tangle: {\n\t\t\t\toffset: 40,\n\t\t\t},\n\t\t\toverlay: { backgroundColor: 'transparent' },\n\t\t});\n\t\tpopup.show();\n\t}\n\n\t#createNowControlNode(uid: string): HTMLDivElement\n\t{\n\t\tconst labelText = Loc.getMessage(\n\t\t\tthis.useAfterBasis\n\t\t\t\t? 'BIZPROC_AUTOMATION_CMP_BASIS_NOW'\n\t\t\t\t: 'BIZPROC_AUTOMATION_CMP_AT_ONCE_2',\n\t\t);\n\n\t\tconst hintText = Loc.getMessage(\n\t\t\tthis.useAfterBasis\n\t\t\t\t? 'BIZPROC_AUTOMATION_CMP_DELAY_NOW_HELP_2'\n\t\t\t\t: 'BIZPROC_AUTOMATION_CMP_DELAY_NOW_HELP',\n\t\t);\n\n\t\tconst { root, labelAfter, radioNow } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-select-item\">\n\t\t\t\t<label\n\t\t\t\t\tref=\"labelAfter\"\n\t\t\t\t\tclass=\"bizproc-automation-popup-select__wrapper --first ui-ctl ui-ctl-radio ui-ctl-w100\"\n\t\t\t\t\tfor=\"${uid}now\"\n\t\t\t\t\tdata-role=\"select-item\"\n\t\t\t\t>\n\t\t\t\t\t<input \n\t\t\t\t\t\tref=\"radioNow\"\n\t\t\t\t\t\tclass=\"bizproc-automation-popup-select__input ui-ctl-element\"\n\t\t\t\t\t\tid=\"${uid}now\"\n\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\tvalue=\"now\"\n\t\t\t\t\t\tname=\"type\"\n\t\t\t\t\t/>\n\t\t\t\t\t<span class=\"bizproc-automation-popup-settings__text --first\">${labelText}</span>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"bizproc-automation-status__help\"\n\t\t\t\t\t\tdata-hint=\"${hintText}\"\n\t\t\t\t\t></span>\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t`;\n\t\tEvent.bind(radioNow, 'change', this.#onChangeDelayIntervalType.bind(this, labelAfter));\n\n\t\tif (this.delay.isNow())\n\t\t{\n\t\t\tradioNow.setAttribute('checked', 'checked');\n\t\t\tDom.addClass(labelAfter, '--active');\n\t\t}\n\n\t\treturn root;\n\t}\n\n\t#onChangeDelayIntervalType(labelNode)\n\t{\n\t\tdocument.querySelectorAll('[data-role=\"select-item\"]').forEach((node) => {\n\t\t\tDom.removeClass(node, '--active');\n\t\t});\n\t\tDom.addClass(labelNode, '--active');\n\t}\n\n\tsaveFormData(formData: FormData)\n\t{\n\t\tthis.#saveDelayIntervalTypeFromForm(formData);\n\n\t\tif (!this.delay.isNow())\n\t\t{\n\t\t\tconst timeName = `basis_in_time_${Text.encode(this.delay.type)}`;\n\t\t\tthis.delay.setInTime(this.#parseInTimeValue(formData.get(timeName)));\n\t\t}\n\t\tthis.delay.setWorkTime(formData.get('worktime'));\n\t\tthis.delay.setWaitWorkDay(formData.get('wait_workday'));\n\t\tthis.setLabelText();\n\n\t\tif (this.onchange)\n\t\t{\n\t\t\tthis.onchange(this.delay);\n\t\t}\n\t}\n\n\t#saveDelayIntervalTypeFromForm(formData: FormData)\n\t{\n\t\tconst type = formData.get('type');\n\n\t\tif (type === 'now')\n\t\t{\n\t\t\tthis.delay.setNow();\n\t\t}\n\t\telse if (type === DelayInterval.DELAY_TYPE.In)\n\t\t{\n\t\t\tthis.delay.setType(DelayInterval.DELAY_TYPE.In);\n\t\t\tthis.delay.setValue(0);\n\t\t\tthis.delay.setValueType('i');\n\t\t\tthis.delay.setBasis(formData.get('basis_in'));\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.delay.setType(type);\n\t\t\tthis.delay.setValue(formData.get(`value_${type}`));\n\t\t\tthis.delay.setValueType(formData.get(`value_type_${type}`));\n\n\t\t\tif (type === DelayInterval.DELAY_TYPE.After)\n\t\t\t{\n\t\t\t\tif (this.useAfterBasis)\n\t\t\t\t{\n\t\t\t\t\tthis.delay.setBasis(formData.get('basis_after'));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.delay.setBasis(DelayInterval.BASIS_TYPE.CurrentDateTime);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tthis.minLimitM > 0\n\t\t\t\t\t&& this.delay.basis === DelayInterval.BASIS_TYPE.CurrentDateTime\n\t\t\t\t\t&& this.delay.valueType === 'i'\n\t\t\t\t\t&& this.delay.value < this.minLimitM\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tBX.UI.Notification.Center.notify({\n\t\t\t\t\t\tcontent: Loc.getMessage('BIZPROC_AUTOMATION_DELAY_MIN_LIMIT_LABEL'),\n\t\t\t\t\t});\n\t\t\t\t\tthis.delay.setValue(this.minLimitM);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.delay.setBasis(formData.get('basis_before'));\n\t\t\t}\n\t\t}\n\t}\n\n\t#parseInTimeValue(value): ?[]\n\t{\n\t\tif (Type.isStringFilled(value))\n\t\t{\n\t\t\tconst result: string = value.trim();\n\n\t\t\tif (/^\\d{2}:\\d{2}\\s?[ap]?m?$/.test(result))\n\t\t\t{\n\t\t\t\tif (result.includes('am'))\n\t\t\t\t{\n\t\t\t\t\treturn [\n\t\t\t\t\t\tString(Text.toInteger(result.slice(0, 2)) % 12).padStart(2, '0'),\n\t\t\t\t\t\tString(Text.toInteger(result.slice(3)) % 60).padStart(2, '0'),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\tif (result.includes('pm'))\n\t\t\t\t{\n\t\t\t\t\treturn [\n\t\t\t\t\t\tString((Text.toInteger(result.slice(0, 2)) % 12) + 12).padStart(2, '0'),\n\t\t\t\t\t\tString(Text.toInteger(result.slice(3)) % 60).padStart(2, '0'),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\tString(Text.toInteger(result.slice(0, 2)) % 24).padStart(2, '0'),\n\t\t\t\t\tString(Text.toInteger(result.slice(3)) % 60).padStart(2, '0'),\n\t\t\t\t];\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tcreateAfterControlNode(): HTMLElement\n\t{\n\t\tconst delay = this.delay;\n\t\tconst uid = Helper.generateUniqueId();\n\n\t\tconst valueAfter = (\n\t\t\tdelay.type === DelayInterval.DELAY_TYPE.After && delay.value\n\t\t\t\t? delay.value\n\t\t\t\t: (this.minLimitM || 5)\n\t\t);\n\n\t\tconst hiddenRow = this.#createHiddenRow(DelayInterval.DELAY_TYPE.After, 'value_type_after');\n\t\tconst chevron = this.#createShowHiddenRowChevron(hiddenRow, delay.valueType !== 'd', 'value_type_after');\n\n\t\tconst { root, labelAfter, radioAfter } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-select-item\">\n\t\t\t\t<label\n\t\t\t\t\tref=\"labelAfter\" \n\t\t\t\t\tclass=\"bizproc-automation-popup-select__wrapper ui-ctl ui-ctl-radio ui-ctl-w100\"\n\t\t\t\t\tfor=\"${uid}\"\n\t\t\t\t\tdata-role=\"select-item\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"bizproc-automation-popup-select__visible-row\">\n\t\t\t\t\t\t<input \n\t\t\t\t\t\t\tref=\"radioAfter\"\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tid=\"${uid}\"\n\t\t\t\t\t\t\tclass=\"bizproc-automation-popup-select__input ui-ctl-element\"\n\t\t\t\t\t\t\tvalue=\"${DelayInterval.DELAY_TYPE.After}\"\n\t\t\t\t\t\t\tname=\"type\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span class=\"bizproc-automation-popup-settings__text --first\">\n\t\t\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_THROUGH_3')}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tname=\"value_after\"\n\t\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings__input\"\n\t\t\t\t\t\t\tvalue=\"${Text.encode(valueAfter)}\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t${this.createValueTypeSelector('value_type_after')}\n\t\t\t\t\t\t${this.#createAfterBasis()}\n\t\t\t\t\t\t${this.useAfterBasis ? chevron : ''}\n\t\t\t\t\t</div>\n\t\t\t\t\t${this.useAfterBasis ? hiddenRow : ''}\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t`;\n\t\tEvent.bind(radioAfter, 'change', this.#onChangeDelayIntervalType.bind(this, labelAfter));\n\n\t\tif (delay.type === DelayInterval.DELAY_TYPE.After && delay.value > 0)\n\t\t{\n\t\t\tradioAfter.setAttribute('checked', 'checked');\n\t\t\tDom.addClass(labelAfter, '--active');\n\n\t\t\tif (delay.valueType === 'd' && this.delay.inTime)\n\t\t\t{\n\t\t\t\tDom.addClass(hiddenRow, '--visible');\n\t\t\t\tDom.addClass(chevron, '--active');\n\t\t\t}\n\t\t}\n\n\t\treturn root;\n\t}\n\n\t#createHiddenRow(delayIntervalType: string, role: string): HTMLDivElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-select__hidden-row\" data-role=\"hidden_row_${role}\">\n\t\t\t\t${this.#createTimeSelector(delayIntervalType)}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#createShowHiddenRowChevron(hiddenRow: HTMLElement, disabled: boolean, type: string): HTMLDivElement\n\t{\n\t\tconst chevron = Tag.render`\n\t\t\t<div \n\t\t\t\tclass=\"ui-icon-set --chevron-down bizproc-automation-popup-select__chevron\"\n\t\t\t\tdata-role=\"chevron_${type}\"\n\t\t\t></div>\n\t\t`;\n\n\t\tif (disabled)\n\t\t{\n\t\t\tthis.#disableSetTimeRow(chevron, hiddenRow);\n\t\t}\n\n\t\tEvent.bind(chevron, 'click', () => {\n\t\t\tif (Dom.hasClass(chevron, '--disabled'))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tDom.toggleClass(chevron, '--active');\n\t\t\tDom.toggleClass(hiddenRow, '--visible');\n\t\t});\n\n\t\treturn chevron;\n\t}\n\n\t#disableSetTimeRow(chevron, hiddenRow)\n\t{\n\t\tDom.removeClass(chevron, '--active');\n\t\tDom.addClass(chevron, '--disabled');\n\t\tDom.attr(chevron, {\n\t\t\t'data-hint-html': 'Y',\n\t\t\t'data-hint-no-icon': 'Y',\n\t\t});\n\t\tchevron.dataset.hint = Loc.getMessage('BIZPROC_JS_AUTOMATION_DELAY_INTERVAL_CHEVRON_DISABLED');\n\t\tDom.removeClass(hiddenRow, '--visible');\n\t\tBX.UI.Hint.initNode(chevron);\n\t}\n\n\t#enableSetTimeRow(chevron, hiddenRow)\n\t{\n\t\tDom.replace(\n\t\t\tchevron,\n\t\t\tthis.#createShowHiddenRowChevron(\n\t\t\t\thiddenRow,\n\t\t\t\tfalse,\n\t\t\t\tDom.attr(chevron, 'data-role').replace('chevron_', ''),\n\t\t\t),\n\t\t);\n\t}\n\n\t#createAfterBasis()\n\t{\n\t\tif (!this.useAfterBasis)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tconst delay = this.delay;\n\n\t\tlet basisField = this.getBasisField(delay.basis, true);\n\t\tlet basisValue = delay.basis;\n\t\tif (!basisField)\n\t\t{\n\t\t\tbasisField = this.getBasisField(DelayInterval.BASIS_TYPE.CurrentDateTime, true);\n\t\t\tbasisValue = basisField.SystemExpression;\n\t\t}\n\n\t\tconst beforeBasisNodeText = (\n\t\t\tbasisField\n\t\t\t\t? Text.encode(basisField.Name)\n\t\t\t\t: Loc.getMessage('BIZPROC_AUTOMATION_CMP_CHOOSE_DATE_FIELD')\n\t\t);\n\n\t\tconst { root, beforeBasisValueNode, beforeBasisNode } = Tag.render`\n\t\t\t<span class=\"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-auto-width\">\n\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_AFTER')}\n\t\t\t</span>\n\t\t\t<input ref=\"beforeBasisValueNode\" type=\"hidden\" name=\"basis_after\" value=\"${Text.encode(basisValue)}\">\n\t\t\t<span class=\"bizproc-automation-popup-settings-link bizproc-automation-delay-interval-basis\">\n\t\t\t\t<span ref=\"beforeBasisNode\">\n\t\t\t\t\t${Text.encode(beforeBasisNodeText)}\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`;\n\t\tEvent.bind(beforeBasisNode, 'click', (event) => {\n\t\t\tconst callback = (field) => {\n\t\t\t\tbeforeBasisNode.textContent = Text.encode(field.Name);\n\t\t\t\tbeforeBasisValueNode.value = field.SystemExpression;\n\t\t\t};\n\t\t\tthis.onBasisClick(event, beforeBasisNode, callback, DelayInterval.DELAY_TYPE.After);\n\t\t});\n\n\t\treturn root;\n\t}\n\n\tcreateBeforeControlNode()\n\t{\n\t\tconst delay = this.delay;\n\t\tconst uid = Helper.generateUniqueId();\n\n\t\tconst valueBefore = (\n\t\t\tdelay.type === DelayInterval.DELAY_TYPE.Before && delay.value\n\t\t\t\t? delay.value\n\t\t\t\t: (this.minLimitM || 5)\n\t\t);\n\n\t\tconst hiddenRow = this.#createHiddenRow(DelayInterval.DELAY_TYPE.Before, 'value_type_before');\n\t\tconst chevron = this.#createShowHiddenRowChevron(hiddenRow, delay.valueType !== 'd', 'value_type_before');\n\n\t\tconst { root, labelBefore, radioBefore } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-select-item\">\n\t\t\t\t<label\n\t\t\t\t\tref=\"labelBefore\"\n\t\t\t\t\tclass=\"bizproc-automation-popup-select__wrapper ui-ctl ui-ctl-radio ui-ctl-w100\"\n\t\t\t\t\tfor=\"${uid}\"\n\t\t\t\t\tdata-role=\"select-item\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"bizproc-automation-popup-select__visible-row\"> \n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref=\"radioBefore\"\n\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\tid=\"${uid}\"\n\t\t\t\t\t\t\tclass=\"bizproc-automation-popup-select__input ui-ctl-element\"\n\t\t\t\t\t\t\tvalue=\"${DelayInterval.DELAY_TYPE.Before}\"\n\t\t\t\t\t\t\tname=\"type\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<span class=\"bizproc-automation-popup-settings__text --first\">\n\t\t\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_FOR_TIME_3')}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tname=\"value_before\"\n\t\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings__input\"\n\t\t\t\t\t\t\tvalue=\"${Text.encode(valueBefore)}\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t${this.createValueTypeSelector('value_type_before')}\n\t\t\t\t\t\t${this.#createBeforeBasis()}\n\t\t\t\t\t\t${chevron}\n\t\t\t\t\t</div>\n\t\t\t\t\t${hiddenRow}\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t`;\n\t\tEvent.bind(radioBefore, 'change', this.#onChangeDelayIntervalType.bind(this, labelBefore));\n\n\t\tif (delay.type === DelayInterval.DELAY_TYPE.Before)\n\t\t{\n\t\t\tradioBefore.setAttribute('checked', 'checked');\n\t\t\tDom.addClass(labelBefore, '--active');\n\n\t\t\tif (delay.valueType === 'd' && this.delay.inTime)\n\t\t\t{\n\t\t\t\tDom.addClass(hiddenRow, '--visible');\n\t\t\t\tDom.addClass(chevron, '--active');\n\t\t\t}\n\t\t}\n\n\t\treturn root;\n\t}\n\n\t#createBeforeBasis()\n\t{\n\t\tconst delay = this.delay;\n\n\t\tlet basisField = this.getBasisField(delay.basis);\n\t\tlet basisValue = delay.basis;\n\t\tif (!basisField)\n\t\t{\n\t\t\tbasisField = this.basisFields[0];\n\t\t\tbasisValue = basisField.SystemExpression;\n\t\t}\n\n\t\tconst { root, beforeBasisValueNode, beforeBasisNode } = Tag.render`\n\t\t\t<span class=\"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-auto-width\">\n\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_BEFORE_1')}\n\t\t\t</span>\n\t\t\t<input ref=\"beforeBasisValueNode\" type=\"hidden\" name=\"basis_before\" value=\"${basisValue}\">\n\t\t\t<span class=\"bizproc-automation-popup-settings-link bizproc-automation-delay-interval-basis\">\n\t\t\t\t<span ref=\"beforeBasisNode\">\n\t\t\t\t\t${basisField ? basisField.Name : Loc.getMessage('BIZPROC_AUTOMATION_CMP_CHOOSE_DATE_FIELD')}\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`;\n\t\tEvent.bind(beforeBasisNode, 'click', (event) => {\n\t\t\tconst callback = (field) => {\n\t\t\t\tbeforeBasisNode.textContent = Text.encode(field.Name);\n\t\t\t\tbeforeBasisValueNode.value = Text.encode(field.SystemExpression);\n\t\t\t};\n\t\t\tthis.onBasisClick(event, beforeBasisNode, callback, DelayInterval.DELAY_TYPE.Before);\n\t\t});\n\n\t\treturn root;\n\t}\n\n\tcreateInControlNode()\n\t{\n\t\tconst delay = this.delay;\n\t\tconst uid = Helper.generateUniqueId();\n\n\t\tconst hiddenRow = this.#createHiddenRow(DelayInterval.DELAY_TYPE.In, 'value_type_in');\n\t\tconst chevron = this.#createShowHiddenRowChevron(hiddenRow, false, 'value_type_in');\n\n\t\tconst { root, labelIn, radioIn } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-select-item\">\n\t\t\t\t<label\n\t\t\t\t\tref=\"labelIn\"\n\t\t\t\t\tclass=\"bizproc-automation-popup-select__wrapper --last ui-ctl ui-ctl-radio ui-ctl-w100\"\n\t\t\t\t\tfor=\"${uid}\"\n\t\t\t\t\tdata-role=\"select-item\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"bizproc-automation-popup-select__visible-row\">\n\t\t\t\t\t\t<input \n\t\t\t\t\t\t\tref=\"radioIn\"\n\t\t\t\t\t\t\tclass=\"bizproc-automation-popup-select__input ui-ctl-element\" \n\t\t\t\t\t\t\tid=\"${uid}\" \n\t\t\t\t\t\t\ttype=\"radio\" \n\t\t\t\t\t\t\tvalue=\"${DelayInterval.DELAY_TYPE.In}\" \n\t\t\t\t\t\t\tname=\"type\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t${this.#createInBasis()}\n\t\t\t\t\t\t${chevron}\n\t\t\t\t\t</div>\n\t\t\t\t\t${hiddenRow}\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t`;\n\t\tEvent.bind(radioIn, 'change', this.#onChangeDelayIntervalType.bind(this, labelIn));\n\n\t\tif (delay.type === DelayInterval.DELAY_TYPE.In)\n\t\t{\n\t\t\tradioIn.setAttribute('checked', 'checked');\n\t\t\tDom.addClass(labelIn, '--active');\n\n\t\t\tif (this.delay.inTime)\n\t\t\t{\n\t\t\t\tDom.addClass(hiddenRow, '--visible');\n\t\t\t\tDom.addClass(chevron, '--active');\n\t\t\t}\n\t\t}\n\n\t\treturn root;\n\t}\n\n\t#createInBasis()\n\t{\n\t\tconst delay = this.delay;\n\n\t\tlet basisField = this.getBasisField(delay.basis, true);\n\t\tlet basisValue = delay.basis;\n\t\tif (!basisField)\n\t\t{\n\t\t\tbasisField = this.basisFields[0];\n\t\t\tbasisValue = basisField.SystemExpression;\n\t\t}\n\n\t\tconst { root, inBasisValueNode, inBasisNode } = Tag.render`\n\t\t\t<span class=\"bizproc-automation-popup-settings__text --first\">\n\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_CMP_IN_TIME_2')}\n\t\t\t</span>\n\t\t\t<input ref=\"inBasisValueNode\" type=\"hidden\" name=\"basis_in\" value=\"${basisValue}\"/>\n\t\t\t<span class=\"bizproc-automation-popup-settings-link bizproc-automation-delay-interval-basis\">\n\t\t\t\t<span ref=\"inBasisNode\">\n\t\t\t\t\t${basisField ? basisField.Name : Loc.getMessage('BIZPROC_AUTOMATION_CMP_CHOOSE_DATE_FIELD')}\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t`;\n\t\tEvent.bind(inBasisNode, 'click', (event) => {\n\t\t\tconst callback = (field) => {\n\t\t\t\tinBasisNode.textContent = Text.encode(field.Name);\n\t\t\t\tinBasisValueNode.value = Text.encode(field.SystemExpression);\n\t\t\t};\n\t\t\tthis.onBasisClick(event, inBasisNode, callback, DelayInterval.DELAY_TYPE.In);\n\t\t});\n\n\t\treturn root;\n\t}\n\n\t#createTimeSelector(delayType: string): HTMLSpanElement\n\t{\n\t\tconst value: [] = delayType === this.delay.type ? this.delay.inTime : [];\n\t\tconst formattedValue = this.#formatTimeToString(value ?? []);\n\n\t\tconst { root, input } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-settings__text\">\n\t\t\t\t<span style=\"margin-right: 10px\">\n\t\t\t\t\t${Loc.getMessage('BIZPROC_JS_AUTOMATION_DELAY_INTERVAL_SET_TIME_LABEL')}\n\t\t\t\t</span>\n\t\t\t\t<input\n\t\t\t\t\tref=\"input\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tname=\"basis_in_time_${Text.encode(delayType)}\"\n\t\t\t\t\tclass=\"bizproc-automation-delay-interval-set-time bizproc-automation-popup-settings__input\"\n\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\tvalue=\"${Text.encode(formattedValue)}\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t`;\n\n\t\t(new InlineTimeSelector({ context: { fields: [] }, showValuesSelector: false })).renderTo(input);\n\n\t\treturn root;\n\t}\n\n\t#formatTimeToString(time: []): string\n\t{\n\t\tconst dateFormat = (\n\t\t\tBX.Main.Date.convertBitrixFormat(Loc.getMessage('FORMAT_DATE'))\n\t\t\t\t.replace(/:?\\s*s/, '')\n\t\t);\n\t\tconst timeFormat = (\n\t\t\tBX.Main.Date.convertBitrixFormat(Loc.getMessage('FORMAT_DATETIME'))\n\t\t\t\t.replace(`${dateFormat} `, '')\n\t\t\t\t.replace(':s', '')\n\t\t);\n\n\t\tconst date = new Date();\n\t\tdate.setHours(time[0] ?? 0, time[1] ?? 0, 0, 0);\n\n\t\treturn Type.isArrayFilled(time) ? DateTimeFormat.format(timeFormat, date) : '';\n\t}\n\n\tcreateValueTypeSelector(name)\n\t{\n\t\tconst delay = this.delay;\n\t\tconst labelTexts = {\n\t\t\ti: Loc.getMessage('BIZPROC_AUTOMATION_CMP_INTERVAL_M'),\n\t\t\th: Loc.getMessage('BIZPROC_AUTOMATION_CMP_INTERVAL_H'),\n\t\t\td: Loc.getMessage('BIZPROC_AUTOMATION_CMP_INTERVAL_D'),\n\t\t};\n\n\t\tconst { root, label, input } = Tag.render`\n\t\t\t<span>\n\t\t\t\t<label ref=\"label\" class=\"bizproc-automation-popup-settings-link\">\n\t\t\t\t\t${Text.encode(labelTexts[delay.valueType])}\n\t\t\t\t</label>\n\t\t\t\t<input ref=\"input\" type=\"hidden\" name=\"${Text.encode(name)}\" value=\"${Text.encode(delay.valueType)}\"/>\n\t\t\t</span>\n\t\t`;\n\n\t\tEvent.bind(label, 'click', this.onValueTypeSelectorClick.bind(this, label, input));\n\n\t\treturn root;\n\t}\n\n\tonValueTypeSelectorClick(label, input)\n\t{\n\t\tconst uid = Helper.generateUniqueId();\n\n\t\tconst handler = (event, item: MenuItem) => {\n\t\t\titem.getMenuWindow().close();\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tinput.value = item.valueId;\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tlabel.textContent = item.text;\n\n\t\t\tif (item.valueId === 'd')\n\t\t\t{\n\t\t\t\tthis.#enableSetTimeRow(\n\t\t\t\t\tdocument.querySelector(`[data-role=\"chevron_${input.name}\"]`),\n\t\t\t\t\tdocument.querySelector(`[data-role=\"hidden_row_${input.name}\"]`),\n\t\t\t\t);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.#disableSetTimeRow(\n\t\t\t\t\tdocument.querySelector(`[data-role=\"chevron_${input.name}\"]`),\n\t\t\t\t\tdocument.querySelector(`[data-role=\"hidden_row_${input.name}\"]`),\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tconst menuItems = [\n\t\t\t{\n\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_INTERVAL_M'),\n\t\t\t\tvalueId: 'i',\n\t\t\t\tonclick: handler,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_INTERVAL_H'),\n\t\t\t\tvalueId: 'h',\n\t\t\t\tonclick: handler,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_INTERVAL_D'),\n\t\t\t\tvalueId: 'd',\n\t\t\t\tonclick: handler,\n\t\t\t},\n\t\t];\n\n\t\tMenuManager.show(\n\t\t\tuid,\n\t\t\tlabel,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tautoHide: true,\n\t\t\t\toffsetLeft: 25,\n\t\t\t\tangle: { position: 'top' },\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose()\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\toverlay: { backgroundColor: 'transparent' },\n\t\t\t},\n\t\t);\n\n\t\tthis.valueTypeMenu = MenuManager.currentItem;\n\t}\n\n\tonBasisClick(event, labelNode, callback, delayType)\n\t{\n\t\tconst menuItems = [];\n\n\t\tconst onMenuItemClick = (e, item: MenuItem) => {\n\t\t\tif (callback)\n\t\t\t{\n\t\t\t\tcallback(item.field || item.options.field);\n\t\t\t}\n\n\t\t\titem.getMenuWindow().close();\n\t\t};\n\n\t\tif (delayType === DelayInterval.DELAY_TYPE.After || delayType === DelayInterval.DELAY_TYPE.In)\n\t\t{\n\t\t\tmenuItems.push(\n\t\t\t\t{\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_BASIS_NOW'),\n\t\t\t\t\tfield: {\n\t\t\t\t\t\tName: Loc.getMessage('BIZPROC_AUTOMATION_CMP_BASIS_NOW'),\n\t\t\t\t\t\tSystemExpression: DelayInterval.BASIS_TYPE.CurrentDateTime,\n\t\t\t\t\t},\n\t\t\t\t\tonclick: onMenuItemClick,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_BASIS_DATE'),\n\t\t\t\t\tfield: {\n\t\t\t\t\t\tName: Loc.getMessage('BIZPROC_AUTOMATION_CMP_BASIS_DATE'),\n\t\t\t\t\t\tSystemExpression: DelayInterval.BASIS_TYPE.CurrentDate,\n\t\t\t\t\t},\n\t\t\t\t\tonclick: onMenuItemClick,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tdelimiter: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tfor (let i = 0; i < this.basisFields.length; ++i)\n\t\t{\n\t\t\tif (\n\t\t\t\tdelayType !== DelayInterval.DELAY_TYPE.After\n\t\t\t\t&& this.basisFields[i].Id.includes('DATE_CREATE')\n\t\t\t)\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tmenuItems.push({\n\t\t\t\ttext: Text.encode(this.basisFields[i].Name),\n\t\t\t\tfield: this.basisFields[i],\n\t\t\t\tonclick: onMenuItemClick,\n\t\t\t});\n\t\t}\n\n\t\tlet menuId = labelNode.getAttribute('data-menu-id');\n\t\tif (!menuId)\n\t\t{\n\t\t\tmenuId = Helper.generateUniqueId();\n\t\t\tlabelNode.setAttribute('data-menu-id', menuId);\n\t\t}\n\n\t\tMenuManager.show(\n\t\t\tmenuId,\n\t\t\tlabelNode,\n\t\t\tmenuItems,\n\t\t\t{\n\t\t\t\tautoHide: true,\n\t\t\t\toffsetLeft: (Dom.getPosition(labelNode).width / 2),\n\t\t\t\tangle: { position: 'top', offset: 0 },\n\t\t\t\toverlay: { backgroundColor: 'transparent' },\n\t\t\t},\n\t\t);\n\n\t\tthis.fieldsMenu = MenuManager.currentItem;\n\t}\n\n\tgetBasisField(basis, system)\n\t{\n\t\tif (\n\t\t\tsystem\n\t\t\t&& (\n\t\t\t\tbasis === DelayInterval.BASIS_TYPE.CurrentDateTime\n\t\t\t\t|| basis === DelayInterval.BASIS_TYPE.CurrentDateTimeLocal\n\t\t\t)\n\t\t)\n\t\t{\n\t\t\treturn {\n\t\t\t\tName: Loc.getMessage('BIZPROC_AUTOMATION_CMP_BASIS_NOW'),\n\t\t\t\tSystemExpression: DelayInterval.BASIS_TYPE.CurrentDateTime,\n\t\t\t};\n\t\t}\n\n\t\tif (system && basis === DelayInterval.BASIS_TYPE.CurrentDate)\n\t\t{\n\t\t\treturn {\n\t\t\t\tName: Loc.getMessage('BIZPROC_AUTOMATION_CMP_BASIS_DATE'),\n\t\t\t\tSystemExpression: DelayInterval.BASIS_TYPE.CurrentDate,\n\t\t\t};\n\t\t}\n\n\t\tlet field = null;\n\t\tfor (let i = 0; i < this.basisFields.length; ++i)\n\t\t{\n\t\t\tif (basis === this.basisFields[i].SystemExpression)\n\t\t\t{\n\t\t\t\tfield = this.basisFields[i];\n\t\t\t}\n\t\t}\n\n\t\treturn field;\n\t}\n\n\tprepareBasisFields()\n\t{\n\t\tconst fields = [];\n\t\tfor (let i = 0; i < this.basisFields.length; ++i)\n\t\t{\n\t\t\tconst fld = this.basisFields[i];\n\t\t\tif (\n\t\t\t\t!fld.Id.includes('DATE_MODIFY')\n\t\t\t\t&& !fld.Id.includes('EVENT_DATE')\n\t\t\t\t&& !fld.Id.includes('BIRTHDATE')\n\t\t\t)\n\t\t\t{\n\t\t\t\tfields.push(fld);\n\t\t\t}\n\t\t}\n\n\t\tthis.basisFields = fields;\n\t}\n\n\t#createWaitWorkDayNode()\n\t{\n\t\tconst delay = this.delay;\n\t\tconst uid = Helper.generateUniqueId();\n\t\tconst isAvailable = this.#isWorkTimeAvailable();\n\n\t\tconst { root, workDayCheckbox } = Tag.render`\n\t\t\t<div class=\"bizproc-automation-popup-select-item\">\n\t\t\t\t<div class=\"bizproc-automation-popup-settings__checkbox-label\">\n\t\t\t\t\t<input\n\t\t\t\t\t\tref=\"workDayCheckbox\"\n\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings__checkbox\"\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tid=\"${`${uid}wait_workday`}\"\n\t\t\t\t\t\tname=\"wait_workday\"\n\t\t\t\t\t\tvalue=\"1\"\n\t\t\t\t\t\tstyle=\"vertical-align: middle\"\n\t\t\t\t\t/>\n\t\t\t\t\t<label\n\t\t\t\t\t\tclass=\"bizproc-automation-popup-settings-lbl ${isAvailable ? '' : 'bizproc-automation-robot-btn-set-locked'}\"\n\t\t\t\t\t\tfor=\"${`${uid}wait_workday`}\"\n\t\t\t\t\t>${Loc.getMessage('BIZPROC_AUTOMATION_DELAY_WAIT_WORK_DAY_MSGVER_1')}</label>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"bizproc-automation-status-help bizproc-automation-status-help-right\"\n\t\t\t\t\t\tdata-hint=\"${Loc.getMessage('BIZPROC_AUTOMATION_DELAY_WAIT_WORK_DAY_HELP')}\"\n\t\t\t\t\t></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t\tif (delay.waitWorkDay && isAvailable)\n\t\t{\n\t\t\tDom.attr(workDayCheckbox, 'checked', 'checked');\n\t\t}\n\n\t\tif (!isAvailable)\n\t\t{\n\t\t\tEvent.bind(root, 'click', () => {\n\t\t\t\tif (top.BX.UI && top.BX.UI.InfoHelper)\n\t\t\t\t{\n\t\t\t\t\ttop.BX.UI.InfoHelper.show('limit_office_worktime_responsible');\n\t\t\t\t}\n\t\t\t});\n\t\t\tworkDayCheckbox.disabled = true;\n\t\t}\n\n\t\treturn root;\n\t}\n\n\t#isWorkTimeAvailable(): boolean\n\t{\n\t\treturn getGlobalContext().get('IS_WORKTIME_AVAILABLE') ?? false;\n\t}\n}\n","import { Type } from 'main.core';\nimport { BaseContext } from './base-context';\nimport { Field } from '../selectors/types';\n\nexport class SelectorContext extends BaseContext\n{\n\tconstructor(props: {\n\t\tfields: Array<Field>,\n\t\tuseSwitcherMenu: boolean,\n\t\trootGroupTitle: string,\n\t})\n\t{\n\t\tsuper(props);\n\t}\n\n\tget fields(): Array<Field>\n\t{\n\t\tconst fields = this.get('fields');\n\n\t\treturn Type.isArray(fields) ? fields : [];\n\t}\n\n\tget useSwitcherMenu(): boolean\n\t{\n\t\treturn Type.isBoolean(this.get('useSwitcherMenu')) ? this.get('useSwitcherMenu') : false;\n\t}\n\n\tset useSwitcherMenu(value: boolean)\n\t{\n\t\tthis.set('useSwitcherMenu', value);\n\t}\n\n\tget rootGroupTitle(): string\n\t{\n\t\treturn this.get('rootGroupTitle') ?? '';\n\t}\n}","import {Type} from 'main.core';\nimport {Globals} from \"bizproc.globals\";\n\nexport type GlobalsProperty = {\n\tObjectId: string,\n\tSuperTitle: string,\n\tId: string,\n\tName: string,\n\tType: string,\n\tBaseType: string,\n\tExpression: string,\n\tSystemExpression: string,\n\tOptions: any,\n\tMultiple: boolean,\n\tVisibility: string,\n};\n\nexport class AutomationGlobals\n{\n\t#globalVariables: Array<GlobalsProperty> = [];\n\t#globalConstants: Array<GlobalsProperty> = [];\n\n\tconstructor(parameters: {\n\t\tvariables: ?[],\n\t\tconstants: ?[],\n\t})\n\t{\n\t\tif (Type.isArrayFilled(parameters.variables))\n\t\t{\n\t\t\tconst variables = [];\n\t\t\tparameters.variables.forEach((property) => {\n\t\t\t\tvariables.push(\n\t\t\t\t\tthis.#getAutomationGlobalsProperty(property.Id, property, Globals.Manager.Instance.mode.variable),\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tthis.#globalVariables = variables;\n\t\t}\n\n\t\tif (Type.isArrayFilled(parameters.constants))\n\t\t{\n\t\t\tconst constants = [];\n\t\t\tparameters.constants.forEach((property) => {\n\t\t\t\tconstants.push(\n\t\t\t\t\tthis.#getAutomationGlobalsProperty(property.Id, property, Globals.Manager.Instance.mode.constant),\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tthis.#globalConstants = constants;\n\t\t}\n\t}\n\n\tget globalVariables(): Array<GlobalsProperty>\n\t{\n\t\treturn this.#globalVariables;\n\t}\n\n\tset globalVariables(variables: [])\n\t{\n\t\tif (!Type.isArray(variables))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#globalVariables = variables;\n\t}\n\n\tget globalConstants(): Array<GlobalsProperty>\n\t{\n\t\treturn this.#globalConstants;\n\t}\n\n\tset globalConstants(constants: [])\n\t{\n\t\tif (!Type.isArray(constants))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#globalConstants = constants;\n\t}\n\n\t#isCorrectMode(mode): boolean\n\t{\n\t\treturn Type.isStringFilled(mode) && Object.values(Globals.Manager.Instance.mode).includes(mode);\n\t}\n\n\t#getAutomationGlobalsProperty(id: string, property: {}, mode: string): GlobalsProperty\n\t{\n\t\treturn {\n\t\t\tObjectId: this.#getObjectId(mode),\n\t\t\tSuperTitle: String(property.VisibilityName),\n\t\t\tId: String(id),\n\t\t\tName: String(property.Name),\n\t\t\tType: String(property.Type),\n\t\t\tBaseType: String(property.BaseType || property.Type),\n\t\t\tExpression:\n\t\t\t\tType.isStringFilled(property.Expression)\n\t\t\t\t\t? property.Expression\n\t\t\t\t\t: this.#getExpression(property.Name, property.VisibilityName)\n\t\t\t,\n\t\t\tSystemExpression:\n\t\t\t\tType.isStringFilled(property.SystemExpression)\n\t\t\t\t\t? property.SystemExpression\n\t\t\t\t\t: this.#getSystemExpression(mode, id)\n\t\t\t,\n\t\t\tOptions: property.Options,\n\t\t\tMultiple: Type.isBoolean(property.Multiple) ? property.Multiple : property.Multiple === 'Y',\n\t\t\tVisibility: String(property.Visibility),\n\t\t};\n\t}\n\n\t#getExpression(name, visibilityName): string\n\t{\n\t\treturn '{{' + String(visibilityName) + ': ' + String(name) + '}}'\n\t}\n\n\t#getSystemExpression(mode, id): string\n\t{\n\t\treturn '{=' + this.#getObjectId(mode) + ':' + String(id) + '}';\n\t}\n\n\t#getObjectId(mode): string\n\t{\n\t\treturn (mode === Globals.Manager.Instance.mode.variable) ? 'GlobalVar' : 'GlobalConst'\n\t}\n\n\tupdateGlobals(mode: string, updatedGlobals: {})\n\t{\n\t\tif (!this.#isCorrectMode(mode) || Object.keys(updatedGlobals).length < 1)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tlet globals = this.#getGlobals(mode);\n\n\t\tconst newGlobals = [];\n\t\tfor (const id in updatedGlobals)\n\t\t{\n\t\t\tconst property = updatedGlobals[id];\n\t\t\tconst index = globals.findIndex(prop => prop.Id === id);\n\t\t\tif (index > -1)\n\t\t\t{\n\t\t\t\tif (globals[index].Name !== property.Name)\n\t\t\t\t{\n\t\t\t\t\tglobals[index].Name = property.Name;\n\t\t\t\t\tglobals[index].Expression = this.#getExpression(property.Name, property.VisibilityName);\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnewGlobals.push(this.#getAutomationGlobalsProperty(id, property, mode));\n\t\t}\n\n\t\tif (Type.isArrayFilled(newGlobals))\n\t\t{\n\t\t\tglobals = globals.concat(newGlobals);\n\t\t}\n\n\t\tthis.#setGlobals(mode, globals);\n\t}\n\n\tdeleteGlobals(mode: string, deletedGlobals: [])\n\t{\n\t\tif (!this.#isCorrectMode(mode) || !Type.isArrayFilled(deletedGlobals))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst globals = this.#getGlobals(mode);\n\n\t\tdeletedGlobals.forEach((id) => {\n\t\t\tconst index = globals.findIndex((prop) => prop.Id === id);\n\t\t\tif (index > -1)\n\t\t\t{\n\t\t\t\tglobals.splice(index, 1);\n\t\t\t}\n\t\t});\n\n\t\tthis.#setGlobals(mode, globals);\n\t}\n\n\t#getGlobals(mode): []\n\t{\n\t\tif (mode === Globals.Manager.Instance.mode.variable)\n\t\t{\n\t\t\treturn this.globalVariables;\n\t\t}\n\n\t\tif (mode === Globals.Manager.Instance.mode.constant)\n\t\t{\n\t\t\treturn this.globalConstants;\n\t\t}\n\t}\n\n\t#setGlobals(mode, globals)\n\t{\n\t\tif (mode === Globals.Manager.Instance.mode.variable)\n\t\t{\n\t\t\tthis.#globalVariables = globals;\n\t\t}\n\n\t\tif (mode === Globals.Manager.Instance.mode.constant)\n\t\t{\n\t\t\tthis.#globalConstants = globals;\n\t\t}\n\t}\n}\n","import {Dom} from 'main.core';\nimport {getGlobalContext, TrackingStatus, Template} from \"bizproc.automation\";\n\nexport class Statuses\n{\n\t#nodes: Array<HTMLElement> = [];\n\t#lastColorStatusIndex: number = -1;\n\t#defaultStatusColor: string = '#d4d6da';\n\n\tconstructor(stagesContainerNode: HTMLElement)\n\t{\n\t\tconst stagesContainer = stagesContainerNode.querySelector('.bizproc-automation-status-list');\n\t\tif (stagesContainer)\n\t\t{\n\t\t\tthis.#nodes = stagesContainer.querySelectorAll('[data-role=\"automation-status-title\"]');\n\t\t}\n\t}\n\n\tinit(templates: Array<Template>): void\n\t{\n\t\tconst context = getGlobalContext();\n\t\tif (context.document.getId() <= 0)\n\t\t{\n\t\t\tthis.#lastColorStatusIndex = this.#nodes.length - 1;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.#lastColorStatusIndex = templates.findIndex((template) => (\n\t\t\t\ttemplate.getStatusId() === context.document.getCurrentStatusId()\n\t\t\t));\n\t\t}\n\t}\n\n\tfixColors(): void\n\t{\n\t\tthis.#fixBackgroundColors();\n\t\tthis.#fixTitleColors();\n\t}\n\n\t#fixBackgroundColors(): void\n\t{\n\t\tthis.#nodes.forEach((statusNode, index) => {\n\t\t\tconst backgroundNode = statusNode.querySelector('.bizproc-automation__status--bg');\n\n\t\t\tif (backgroundNode)\n\t\t\t{\n\t\t\t\tconst color = (\n\t\t\t\t\tthis.#isColorStatus(index) && statusNode.dataset.bgcolor\n\t\t\t\t\t\t? statusNode.dataset.bgcolor\n\t\t\t\t\t\t: this.#defaultStatusColor\n\t\t\t\t);\n\n\t\t\t\tDom.style(backgroundNode, {\n\t\t\t\t\tbackgroundColor: color,\n\t\t\t\t\tborderColor: color,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\t#fixTitleColors(): void\n\t{\n\t\tthis.#nodes.forEach((statusNode, index) => {\n\t\t\tif (!this.#isColorStatus(index))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst backgroundColor = statusNode.dataset.bgcolor;\n\t\t\tif (backgroundColor)\n\t\t\t{\n\t\t\t\tconst bigint = parseInt(backgroundColor, 16);\n\t\t\t\tconst red = (bigint >> 16) & 255;\n\t\t\t\tconst green = (bigint >> 8) & 255;\n\t\t\t\tconst blue = bigint & 255;\n\n\t\t\t\tconst isDarkColor = 0.21 * red + 0.72 * green + 0.07 * blue < 145;\n\t\t\t\tif (isDarkColor)\n\t\t\t\t{\n\t\t\t\t\tDom.style(statusNode, 'color', 'white');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t#isColorStatus(index: number): boolean\n\t{\n\t\treturn index <= this.#lastColorStatusIndex;\n\t}\n}","import { Loc } from 'main.core';\nimport { Field } from '../types';\nimport { Group } from './group';\nimport GroupId from './group-id';\n\nexport class ConstantGroup extends Group\n{\n\tconstructor(data: {\n\t\tfields: Array<Field>,\n\t})\n\t{\n\t\tsuper(data);\n\n\t\tthis.#fillGroups(data.fields);\n\t}\n\n\t#fillGroups(fields: Array<Field>)\n\t{\n\t\tconst groupId = GroupId.CONSTANTS;\n\t\tthis.addGroup(groupId, {\n\t\t\tid: groupId,\n\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_CMP_CONSTANTS_LIST'),\n\t\t\tsearchable: false,\n\t\t});\n\n\t\tfields.forEach((field) => {\n\t\t\tthis.addGroupItem(groupId, {\n\t\t\t\tid: field.SystemExpression,\n\t\t\t\ttitle: field.Name || field.Id,\n\t\t\t\tsupertitle: field.SuperTitle || '',\n\t\t\t\tcustomData: { field },\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Type } from 'main.core';\nimport { Field } from '../types';\nimport { Group } from './group';\nimport GroupId from './group-id';\n\nexport class ActivityResultGroup extends Group\n{\n\tconstructor(data: {\n\t\tfields: Array<{id: string, title: string, fields: Array<Field>}>,\n\t\ttitle: string\n\t})\n\t{\n\t\tsuper(data);\n\n\t\tif (!Type.isStringFilled(data.title))\n\t\t{\n\t\t\tthrow new TypeError('title must be filled string');\n\t\t}\n\n\t\tthis.#fillGroups(data.fields, data.title);\n\t}\n\n\t#fillGroups(activities: Array<{id: string, title: string, fields: Array<Field>}>, title: string)\n\t{\n\t\tconst groupId = GroupId.ACTIVITY_RESULT;\n\t\tthis.addGroup(groupId, {\n\t\t\tid: groupId,\n\t\t\ttitle,\n\t\t\tsearchable: false,\n\t\t});\n\n\t\tactivities.forEach((activity) => {\n\t\t\tthis.addGroupItem(groupId, {\n\t\t\t\tid: activity.id,\n\t\t\t\ttitle: activity.title,\n\t\t\t\tsearchable: false,\n\t\t\t\tchildren: activity.fields.map((field) => ({\n\t\t\t\t\tid: field.SystemExpression, // Expression\n\t\t\t\t\ttitle: field.Name,\n\t\t\t\t\tcustomData: { field },\n\t\t\t\t})),\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Loc } from 'main.core';\nimport { Field } from '../types';\nimport { Group } from './group';\nimport GroupId from './group-id';\n\nexport class TriggerResultGroup extends Group\n{\n\tconstructor(data: { fields: Array<{id: string, title: string, fields: Array<Field>}> })\n\t{\n\t\tsuper(data);\n\n\t\tthis.#fillGroups(data.fields);\n\t}\n\n\t#fillGroups(groups: Array<{id: string, title: string, fields: Array<Field>}>)\n\t{\n\t\tconst groupId = GroupId.TRIGGER_RESULT;\n\t\tthis.addGroup(groupId, {\n\t\t\tid: groupId,\n\t\t\ttitle: Loc.getMessage('BIZPROC_JS_AUTOMATION_SELECTOR_GROUP_MANAGER_TRIGGER_LIST'),\n\t\t\tsearchable: false,\n\t\t});\n\n\t\tgroups.forEach((group) => {\n\t\t\tthis.addGroupItem(groupId, {\n\t\t\t\tid: group.id,\n\t\t\t\ttitle: group.title,\n\t\t\t\tsearchable: false,\n\t\t\t\tchildren: group.fields.map((field) => ({\n\t\t\t\t\tid: field.SystemExpression,\n\t\t\t\t\ttitle: field.Name,\n\t\t\t\t\tcustomData: { field },\n\t\t\t\t})),\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Loc } from 'main.core';\nimport { Field } from '../types';\nimport { Group } from './group';\nimport GroupId from './group-id';\n\nexport class VariableGroup extends Group\n{\n\tconstructor(data: {\n\t\tfields: Array<Field>,\n\t})\n\t{\n\t\tsuper(data);\n\n\t\tthis.#fillGroups(data.fields);\n\t}\n\n\t#fillGroups(fields: Array<Field>)\n\t{\n\t\tconst groupId = GroupId.VARIABLES;\n\t\tthis.addGroup(groupId, {\n\t\t\tid: groupId,\n\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_CMP_GLOB_VARIABLES_LIST_1'),\n\t\t\tsearchable: false,\n\t\t});\n\n\t\tfields.forEach((field) => {\n\t\t\tthis.addGroupItem(groupId, {\n\t\t\t\tid: field.SystemExpression,\n\t\t\t\ttitle: field.Name || field.Id,\n\t\t\t\tsupertitle: field.SuperTitle || '',\n\t\t\t\tcustomData: { field },\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Loc, Type, Runtime } from 'main.core';\nimport { GlobalsProperty } from '../../automation-globals';\nimport { Field } from '../types';\nimport { ConstantGroup } from './constant-group';\nimport { DocumentGroup } from './document-group';\nimport { FileGroup } from './file-group';\nimport { ActivityResultGroup } from './activity-result-group';\nimport { TriggerResultGroup } from './trigger-result-group';\nimport { VariableGroup } from './variable-group';\n\nexport class SelectorItemsManager\n{\n\t#documentFields: Array<Field> = [];\n\t#documentTitle: string = Loc.getMessage('BIZPROC_JS_AUTOMATION_SELECTOR_GROUP_MANAGER_DOCUMENT_GROUP_TITLE');\n\t#linkFiles: Array<Field> = [];\n\t#variables: Array<Field> = [];\n\t#constants: Array<Field> = [];\n\t#activityResultFields: Array<{id: string, title: string, fields: Array<Field>}> = [];\n\t#activityResultFieldsTitle: string = Loc.getMessage('BIZPROC_AUTOMATION_CMP_ROBOT_LIST');\n\t#triggerResultFields: Array<{id: string, title: string, fields: Array<Field>}> = [];\n\n\tconstructor(data: {\n\t\tdocumentFields?: Array<Field>,\n\t\tdocumentTitle?: string,\n\t\tglobalVariables?: Array<GlobalsProperty>,\n\t\tvariables?: Array<Field>,\n\t\tglobalConstants?: Array<GlobalsProperty>,\n\t\tconstants?: Array<Field>,\n\t\tactivityResultFields?: Array<{id: string, title: string, fields: Array<Field>}>,\n\t\tactivityResultFieldsTitle: ?string,\n\t\ttriggerResultFields?: Array<Field>,\n\t})\n\t{\n\t\tif (Type.isArray(data.documentFields))\n\t\t{\n\t\t\tthis.#setDocumentFields(data.documentFields);\n\t\t}\n\n\t\tif (Type.isStringFilled(data.documentTitle))\n\t\t{\n\t\t\tthis.#documentTitle = data.documentTitle;\n\t\t}\n\n\t\tif (Type.isArray(data.variables))\n\t\t{\n\t\t\tthis.#setVariables(data.variables);\n\t\t}\n\n\t\tif (Type.isArray(data.globalVariables))\n\t\t{\n\t\t\tthis.#setVariables(data.globalVariables);\n\t\t}\n\n\t\tif (Type.isArray(data.constants))\n\t\t{\n\t\t\tthis.#setConstants(data.constants);\n\t\t}\n\n\t\tif (Type.isArray(data.globalConstants))\n\t\t{\n\t\t\tthis.#setConstants(data.globalConstants);\n\t\t}\n\n\t\t// todo: activity\n\t\tif (Type.isArray(data.activityResultFields))\n\t\t{\n\t\t\tthis.#setActivityResultFields(data.activityResultFields);\n\t\t}\n\n\t\tif (Type.isStringFilled(data.activityResultFieldsTitle))\n\t\t{\n\t\t\tthis.#activityResultFieldsTitle = data.activityResultFieldsTitle;\n\t\t}\n\n\t\tif (Type.isArray(data.triggerResultFields))\n\t\t{\n\t\t\tthis.#setTriggerResultFields(data.triggerResultFields);\n\t\t}\n\t}\n\n\t#setDocumentFields(documentFields: Array<Field>)\n\t{\n\t\tdocumentFields.forEach((field) => {\n\t\t\tif (this.#isFileShortLinkField(field))\n\t\t\t{\n\t\t\t\tthis.#linkFiles.push(Runtime.clone(field));\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.#documentFields.push(Runtime.clone(field));\n\t\t});\n\t}\n\n\t#setVariables(variables: Array<Field>)\n\t{\n\t\tvariables.forEach((variable) => {\n\t\t\tthis.#variables.push({\n\t\t\t\t...Runtime.clone(variable),\n\t\t\t});\n\t\t});\n\t}\n\n\t#setConstants(constants: Array<Field>)\n\t{\n\t\tconstants.forEach((constant) => {\n\t\t\tthis.#constants.push({\n\t\t\t\t...Runtime.clone(constant),\n\t\t\t});\n\t\t});\n\t}\n\n\t#setActivityResultFields(activities: Array<{id: string, title: string, fields: Array<Field>}>)\n\t{\n\t\tactivities.forEach((activity) => {\n\t\t\tconst fields = [];\n\n\t\t\tactivity.fields.forEach((field) => {\n\t\t\t\tif (this.#isFileShortLinkField(field))\n\t\t\t\t{\n\t\t\t\t\tthis.#linkFiles.push(Runtime.clone(field));\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfields.push(Runtime.clone(field));\n\t\t\t});\n\n\t\t\tthis.#activityResultFields.push({\n\t\t\t\tid: activity.id,\n\t\t\t\ttitle: activity.title,\n\t\t\t\tfields,\n\t\t\t});\n\t\t});\n\t}\n\n\t#setTriggerResultFields(fields: Array<Field>)\n\t{\n\t\tconst groups = {};\n\n\t\tfields.forEach((field) => {\n\t\t\tconst groupId = field.ObjectRealId;\n\t\t\tif (!groupId)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!Object.hasOwn(groups, groupId))\n\t\t\t{\n\t\t\t\tgroups[groupId] = {\n\t\t\t\t\tid: groupId,\n\t\t\t\t\ttitle: field.ObjectName,\n\t\t\t\t\tfields: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tgroups[groupId].fields.push({\n\t\t\t\t...Runtime.clone(field),\n\t\t\t});\n\t\t});\n\n\t\tthis.#triggerResultFields.push(...Object.values(groups));\n\t}\n\n\t#isFileShortLinkField(field: Field): boolean\n\t{\n\t\treturn field.Id.endsWith('_shortlink') && field.Type === 'string';\n\t}\n\n\tget groupsWithChildren(): []\n\t{\n\t\tconst documentGroup = new DocumentGroup({\n\t\t\tfields: this.#documentFields,\n\t\t\ttitle: this.#documentTitle,\n\t\t});\n\n\t\tconst fileGroup = new FileGroup({\n\t\t\tfields: this.#linkFiles,\n\t\t});\n\n\t\tconst variablesGroup = new VariableGroup({\n\t\t\tfields: this.#variables,\n\t\t});\n\n\t\tconst constantsGroup = new ConstantGroup({\n\t\t\tfields: this.#constants,\n\t\t});\n\n\t\tconst robotResultGroup = new ActivityResultGroup({\n\t\t\tfields: this.#activityResultFields,\n\t\t\ttitle: this.#activityResultFieldsTitle,\n\t\t});\n\n\t\tconst triggerResultGroup = new TriggerResultGroup({\n\t\t\tfields: this.#triggerResultFields,\n\t\t});\n\n\t\treturn [\n\t\t\t...documentGroup.groupsWithChildren,\n\t\t\t...fileGroup.groupsWithChildren,\n\t\t\t...robotResultGroup.groupsWithChildren,\n\t\t\t...constantsGroup.groupsWithChildren,\n\t\t\t...variablesGroup.groupsWithChildren,\n\t\t\t...triggerResultGroup.groupsWithChildren,\n\t\t];\n\t}\n\n\tget items(): []\n\t{\n\t\tconst documentGroup = new DocumentGroup({\n\t\t\tfields: this.#documentFields,\n\t\t\ttitle: this.#documentTitle,\n\t\t});\n\n\t\tconst fileGroup = new FileGroup({\n\t\t\tfields: this.#linkFiles,\n\t\t});\n\n\t\tconst variablesGroup = new VariableGroup({\n\t\t\tfields: this.#variables,\n\t\t});\n\n\t\tconst constantsGroup = new ConstantGroup({\n\t\t\tfields: this.#constants,\n\t\t});\n\n\t\tconst robotResultGroup = new ActivityResultGroup({\n\t\t\tfields: this.#activityResultFields,\n\t\t\ttitle: this.#activityResultFieldsTitle,\n\t\t});\n\n\t\tconst triggerResultGroup = new TriggerResultGroup({\n\t\t\tfields: this.#triggerResultFields,\n\t\t});\n\n\t\treturn [\n\t\t\t...documentGroup.items,\n\t\t\t...fileGroup.items,\n\t\t\t...variablesGroup.items,\n\t\t\t...constantsGroup.items,\n\t\t\t...robotResultGroup.items,\n\t\t\t...triggerResultGroup.items,\n\t\t];\n\t}\n}\n","import {Loc, Type, Text} from 'main.core';\nimport {Guide} from 'ui.tour';\n\nexport class BeginningGuide\n{\n\t#guide: Guide;\n\n\tconstructor(options: {target: HTMLElement, text?: string, article?: string})\n\t{\n\t\tif (!Type.isElementNode(options.target))\n\t\t{\n\t\t\tthrow 'options.target must be Node Element';\n\t\t}\n\n\t\tconst text =\n\t\t\tType.isStringFilled(options.text)\n\t\t\t\t? options.text\n\t\t\t\t: Loc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_BEGINNING_SUBTITLE_1')\n\t\t;\n\t\tconst article = Type.isStringFilled(options.article) ? Text.toInteger(options.article) : '';\n\n\t\tthis.#guide = new Guide({\n\t\t\tsteps: [\n\t\t\t\t{\n\t\t\t\t\ttarget: options.target,\n\t\t\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_BEGINNING_TITLE'),\n\t\t\t\t\ttext,\n\t\t\t\t\tarticle,\n\t\t\t\t\tcondition: {\n\t\t\t\t\t\ttop: true,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tcolor: 'primary',\n\t\t\t\t\t},\n\t\t\t\t\tposition: 'bottom',\n\t\t\t\t},\n\t\t\t],\n\t\t\tonEvents: true,\n\t\t});\n\n\t\tthis.#guide.getPopup().setAutoHide(true);\n\t}\n\n\tstart()\n\t{\n\t\tthis.#guide.showNextStep();\n\t}\n}","import { Loc, Type, Text } from 'main.core';\nimport { Guide } from 'ui.tour';\n\nimport '../css/tourguide.css';\n\nexport class AutomationGuide\n{\n\t#isShownRobotGuide: boolean = true;\n\t#isShownTriggerGuide: boolean = true;\n\n\t#isShownSupportingRobotGuide: boolean = false;\n\n\t#showRobotGuide: boolean = false;\n\t#showTriggerGuide: boolean = false;\n\t#showSupportingRobotGuide: boolean = false;\n\n\t#guideTargets: {\n\t\ttrigger?: Element,\n\t\tsupportingRobot?: Element,\n\t\trobot?: Element,\n\t} = {};\n\n\tconstructor(options: {\n\t\tisShownRobotGuide: boolean,\n\t\tisShownTriggerGuide: boolean,\n\t})\n\t{\n\t\tif (Type.isBoolean(options.isShownRobotGuide))\n\t\t{\n\t\t\tthis.#isShownRobotGuide = options.isShownRobotGuide;\n\t\t}\n\t\tif (Type.isBoolean(options.isShownTriggerGuide))\n\t\t{\n\t\t\tthis.#isShownTriggerGuide = options.isShownTriggerGuide;\n\t\t}\n\t}\n\n\tget isShownRobotGuide(): boolean\n\t{\n\t\treturn this.#isShownRobotGuide;\n\t}\n\n\tget isShownTriggerGuide(): boolean\n\t{\n\t\treturn this.#isShownTriggerGuide;\n\t}\n\n\tsetShowRobotGuide(show: boolean, target?: Element)\n\t{\n\t\tthis.#showRobotGuide = show;\n\n\t\tif (show)\n\t\t{\n\t\t\tthis.#guideTargets['robot'] = target ?? null;\n\t\t}\n\t}\n\n\tsetShowTriggerGuide(show: boolean, target?: Element)\n\t{\n\t\tthis.#showTriggerGuide = show;\n\n\t\tif (show)\n\t\t{\n\t\t\tthis.#guideTargets['trigger'] = target ?? null;\n\t\t}\n\t}\n\n\tsetShowSupportingRobotGuide(show: boolean, target?: Element)\n\t{\n\t\tthis.#showSupportingRobotGuide = show;\n\n\t\tif (show)\n\t\t{\n\t\t\tthis.#guideTargets['supportingRobot'] = target ?? null;\n\t\t}\n\t}\n\n\t#resolveShowGuides()\n\t{\n\t\t// settings\n\t\tif (this.#isShownTriggerGuide)\n\t\t{\n\t\t\tthis.#showTriggerGuide = false;\n\t\t}\n\n\t\tif (this.#isShownSupportingRobotGuide)\n\t\t{\n\t\t\tthis.#showSupportingRobotGuide = false;\n\t\t\tthis.#isShownRobotGuide = true;\n\t\t}\n\n\t\tif (this.#isShownRobotGuide)\n\t\t{\n\t\t\tthis.#showRobotGuide = false;\n\t\t}\n\n\t\t// logic\n\t\tif (this.#showSupportingRobotGuide)\n\t\t{\n\t\t\tthis.#isShownRobotGuide = true;\n\t\t}\n\t}\n\n\t#getGuide(): ?Guide\n\t{\n\t\tlet guide = null;\n\n\t\tif (this.#showSupportingRobotGuide)\n\t\t{\n\t\t\tif (Type.isDomNode(this.#guideTargets['supportingRobot']))\n\t\t\t{\n\t\t\t\tguide = this.#getSupportingRobotGuide();\n\t\t\t\tguide.getPopup().setAutoHide(true);\n\t\t\t}\n\n\t\t\treturn guide;\n\t\t}\n\n\t\tif (this.#showTriggerGuide)\n\t\t{\n\t\t\tif (Type.isDomNode(this.#guideTargets['trigger']))\n\t\t\t{\n\t\t\t\tguide = this.#getTriggerGuide();\n\t\t\t\tguide.getPopup().setAutoHide(true);\n\t\t\t}\n\n\t\t\treturn guide;\n\t\t}\n\n\t\tif (this.#showRobotGuide)\n\t\t{\n\t\t\tif (Type.isDomNode(this.#guideTargets['robot']))\n\t\t\t{\n\t\t\t\tguide = this.#getRobotGuide();\n\t\t\t\tguide.getPopup().setAutoHide(true);\n\t\t\t}\n\n\t\t\treturn guide;\n\t\t}\n\n\t\treturn guide;\n\t}\n\n\tstart()\n\t{\n\t\tthis.#resolveShowGuides();\n\t\tconst guide = this.#getGuide();\n\t\tif (guide)\n\t\t{\n\t\t\tconst bindElement = guide.getCurrentStep().target;\n\t\t\tif (Type.isDomNode(bindElement) && document.body.contains(bindElement))\n\t\t\t{\n\t\t\t\tguide.showNextStep();\n\t\t\t}\n\t\t}\n\t}\n\n\t#getRobotGuide(): Guide\n\t{\n\t\treturn new Guide({\n\t\t\tsteps: [\n\t\t\t\t{\n\t\t\t\t\ttarget: this.#guideTargets['robot'],\n\t\t\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_ROBOT_TITLE_1'),\n\t\t\t\t\ttext: this.constructor.#getText([\n\t\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_ROBOT_SUBTITLE_1'),\n\t\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_ROBOT_SUBTITLE_2')\n\t\t\t\t\t]),\n\t\t\t\t\tarticle: '16547618',\n\t\t\t\t\tcondition: {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\tcolor: 'primary',\n\t\t\t\t\t},\n\t\t\t\t\tposition: 'top',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\t'onShow': () => {\n\t\t\t\t\t\t\tthis.#isShownRobotGuide = true;\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tonEvents: true,\n\t\t});\n\t}\n\n\t#getTriggerGuide(): Guide\n\t{\n\t\treturn new Guide({\n\t\t\tsteps: [\n\t\t\t\t{\n\t\t\t\t\ttarget: this.#guideTargets['trigger'],\n\t\t\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_TRIGGER_TITLE_1'),\n\t\t\t\t\ttext: this.constructor.#getText([\n\t\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_TRIGGER_SUBTITLE_1'),\n\t\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_TRIGGER_SUBTITLE_2')\n\t\t\t\t\t]),\n\t\t\t\t\tarticle: '16547632',\n\t\t\t\t\tcondition: {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\tcolor: 'primary',\n\t\t\t\t\t},\n\t\t\t\t\tposition: 'top',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\t'onShow': () => {\n\t\t\t\t\t\t\tthis.#isShownTriggerGuide = true;\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tonEvents: true,\n\t\t});\n\t}\n\n\t#getSupportingRobotGuide(): Guide\n\t{\n\t\treturn new Guide({\n\t\t\tsteps: [\n\t\t\t\t{\n\t\t\t\t\ttarget: this.#guideTargets['supportingRobot'],\n\t\t\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_SUPPORTING_ROBOT_TITLE'),\n\t\t\t\t\ttext: this.constructor.#getText([\n\t\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_SUPPORTING_ROBOT_SUBTITLE_1'),\n\t\t\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_SUPPORTING_ROBOT_SUBTITLE_2'),\n\t\t\t\t\t]),\n\t\t\t\t\tarticle: '16547644',\n\t\t\t\t\tcondition: {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\tcolor: 'primary',\n\t\t\t\t\t},\n\t\t\t\t\tposition: 'top',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\t'onShow': () => {\n\t\t\t\t\t\t\tthis.#isShownSupportingRobotGuide = true;\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tonEvents: true,\n\t\t});\n\t}\n\n\tstatic #getText(subtitles: Array): Element\n\t{\n\t\tlet text = `<ul class=\"bizproc-automation-tour-guide-list\">`;\n\n\t\tfor (const subtitle of subtitles)\n\t\t{\n\t\t\ttext += `<li class=\"bizproc-automation-tour-guide-list-item\"> ${Text.encode(subtitle)} </li>`;\n\t\t}\n\n\t\ttext += `</ul>`;\n\n\t\treturn text;\n\t}\n}","import TemplatesScheme from './templates-scheme';\nimport { Context } from './context/context';\n\nexport { TemplateScope } from './template-scope';\nexport { TriggerManager } from './trigger-manager';\nexport { Trigger } from './trigger';\nexport { Template } from './template';\nexport { Robot } from './robot';\nexport { UserOptions } from './user-options';\nexport { Document } from './document/document';\nexport { ViewMode } from './view-mode';\nexport { ConditionGroup } from './condition/condition-group';\nexport { ConditionGroupSelector } from './selectors/condition-group-selector';\nexport { Condition } from './condition/condition';\nexport { Designer } from './designer';\nexport * from './tracker/tracker';\nexport * from './workflow/types';\nexport { Manager as SelectorManager } from './selectors/manager';\nexport { InlineSelector } from './selectors/inline-selector';\nexport { InlineSelectorCondition } from './selectors/inline-selector-condition';\nexport { InlineSelectorHtml } from './selectors/inline-selector-html';\nexport { SaveStateCheckbox } from './selectors/save-state-checkbox';\nexport { MenuSelector } from './selectors/menu-selector';\nexport { UserSelector } from './selectors/user-selector';\nexport { FileSelector } from './selectors/file-selector';\nexport { TimeSelector } from './selectors/time-selector';\nexport { DelayInterval } from './delay-interval';\nexport { DelayIntervalSelector } from './delay-interval-selector';\nexport { HelpHint } from './help-hint';\nexport { SelectorContext } from './context/selector-context';\nexport { AutomationGlobals } from './automation-globals';\nexport { Statuses } from './statuses';\nexport { SelectorItemsManager } from './selectors/group/manager';\n\nimport enrichFieldsWithModifiers from './selectors/enrich-fields-with-modifiers';\n\nexport { Helper } from './helper';\n\nimport 'ui.design-tokens';\nimport 'ui.fonts.opensans';\nimport './css/style.css';\n\nexport {\n\tTemplatesScheme,\n\tContext,\n\tenrichFieldsWithModifiers,\n};\n\nexport { BeginningGuide } from './tourguide/beginning-guide';\nexport { AutomationGuide } from './tourguide/automation-guide';\n\nlet contextInstance: ?Context;\n\nexport function getGlobalContext(): Context\n{\n\tif (contextInstance instanceof Context)\n\t{\n\t\treturn contextInstance;\n\t}\n\n\tthrow new Error('Context is not initialized yet');\n}\n\nexport function tryGetGlobalContext(): ?Context\n{\n\ttry\n\t{\n\t\treturn getGlobalContext();\n\t}\n\tcatch (error)\n\t{\n\t\treturn null;\n\t}\n}\n\nexport function setGlobalContext(context: Context): Context\n{\n\tif (context instanceof Context)\n\t{\n\t\tcontextInstance = context;\n\t}\n\telse\n\t{\n\t\tthrow new Error('Unsupported Context');\n\t}\n\n\treturn context;\n}\n"],"names":["TemplateScope","rawTemplateScope","DocumentType","Type","isNil","Category","Id","Status","hasCategory","isNull","TemplatesScheme","scheme","_classPrivateFieldInitSpec","isArray","forEach","rawScope","scope","push","documentTypes","Map","set","getDocumentType","Array","from","values","documentType","documentCategories","category","getDocumentCategory","documentCategory","takenStatuses","Set","predicate","shouldBeTaken","has","getDocumentStatus","add","map","generator","BaseContext","defaultValue","setEventNamespace","isPlainObject","clone","name","value","isValueChanged","emit","hasOwnProperty","listener","subscribe","event","data","EventEmitter","Context","props","Runtime","getValues","document","userOptions","code","availableTriggers","find","trigger","get","availableRobots","canManage","isBoolean","canEdit","tracker","ViewMode","mode","getAll","includes","none","Trigger","draft","ConditionGroup","viewMode","isString","id","parseInt","isNumber","Condition","edit","createNode","node","parentNode","replaceChild","getGlobalContext","String","statusList","status","STATUS_ID","getStatusId","triggerName","getCode","NAME","rules","log","getTriggerLog","getId","condition","flag","userId","isActive","manage","setProperty","checkboxNode","Tag","render","deleteButton","querySelector","Dom","hide","append","addClass","onclick","undefined","unselectNode","removeClass","remove","show","checked","isManage","hasClass","wrapperClass","isEdit","settingsBtn","copyBtn","create","attrs","className","text","Loc","getMessage","Event","bind","onCopyButtonClick","getLogStatus","TrackingStatus","COMPLETED","getPreviousStatusIdList","getName","containerClass","div","children","title","registerItem","deleteBtn","onDeleteButtonClick","appendChild","onSettingsButtonClick","getProperty","isSelected","selectNode","button","HelpHint","showNoPermissionsHint","stopPropagation","initData","serialize","clearRules","getSettingProperties","filter","property","Copyable","key","init","query","getData","queryString","match","toLowerCase","indexOf","object","onbxdragstart","BX","proxy","dragStart","onbxdrag","dragMove","onbxdragstop","dragStop","onbxdraghover","dragOver","jsDD","registerObject","registerDest","unregisterObject","unregisterDest","proxy_context","stopCurrentDrag","itemWidth","offsetWidth","cloneNode","style","position","classList","width","body","x","y","left","top","destination","type","getAttribute","window","isCopy","ctrlKey","metaKey","copyTrigger","parent","statusId","thisColumn","insertBefore","moveTo","skipInsert","removeChild","APPLY_RULES","items","length","triggerData","RETURN","SETTINGS","Properties","Helper","JSON","stringify","i","v","fields","field","Designer","dialog","robotSettingsDialog","robot","triggerSettingsDialog","_classStaticPrivateFieldSpecSet","TriggerManager","triggersContainerNode","params","_classPrivateMethodInitSpec","self","Promise","resolve","reject","ajax","method","dataType","url","ajaxUrl","ajax_action","document_signed","signedDocument","onsuccess","response","SUCCESS","reInit","TRIGGERS","DATA","triggers","onerror","isNone","querySelectorAll","initTriggers","markModified","columnNode","addCustomEvent","onRestAppInstall","clean","subscribeTriggerEvents","insertTriggerNode","openTriggerSettingsDialog","deleteTrigger","Object","entries","eventName","onSearch","listNode","dataset","enableManageMode","documentStatus","disableManageMode","callback","call","markDeleted","splice","unregisterItem","triggerNode","deleted","CODE","availableTrigger","modified","context","getInstance","getTriggerSettingsDialog","changeTrigger","popup","close","formName","getTriggerName","form","renderConditionSettings","Text","encode","getAvailableTrigger","_classPrivateMethodGet","onCustomEvent","canSetExecuteBy","renderExecuteByControl","renderAllowBackwardsControl","setTriggerSettingsDialog","triggerManager","Popup","generateUniqueId","bindElement","content","closeByEsc","buttons","SaveButton","formData","prepareForm","setName","setConditionSettingsFromForm","setAllowBackwards","allow_backwards","setExecuteBy","execute_by","runAction","analyticsLabel","CancelButton","contentPadding","closeIcon","events","onPopupClose","destroySettingsDialogControls","destroy","titleBar","overlay","draggable","restrict","conditionGroup","getCondition","conditionSelector","ConditionGroupSelector","getFields","showValuesSelector","caption","head","isExpanded","getRawType","getCategoryId","getResponsibleUserExpression","getExecuteBy","Bizproc","FieldType","renderControl","isBackwardsAllowed","formFields","setCondition","createFromForm","installed","eventResult","redirect","setTimeout","settingsDialogControls","controlNodes","controlNode","control","role","UserSelector","decorateNode","UI","Hint","isFunction","result","exists","getListByDocumentStatus","getReturnProperties","ObjectId","Name","ObjectName","Expression","SystemExpression","ObjectRealId","propertyId","properties","getApplyRules","toRenderProperty","AllowSelection","cmp","component","Options","Settings","Filter","check","templateManager","templates","template","robots","OptionNameProperty","setApplyRules","selector","Fields","fieldPrefix","getRandom","hookLinkTextarea","select","Handler","location","protocol","host","Uri","addParam","replace","Password","PasswordLoader","myAlertText","passwordAlert","Alert","color","AlertColor","WARNING","icon","AlertIcon","getTextContainer","loaderConfig","runComponentAction","action","then","error","alert","password","handleCloseBtnClick","getContainer","menuId","Math","random","fieldName","fieldsList","renderFieldCheckbox","fieldSelectorHandler","targetNode","Main","MenuManager","getMenuById","menuItems","item","popupWindow","autoHide","offsetLeft","getPosition","angle","offset","zIndex","fieldListNode","fieldSelectorNode","ChooseFieldLabel","foundField","fld","DelayInterval","BASIS_TYPE","CurrentDateTime","DELAY_TYPE","After","setType","setValue","valueType","setValueType","basis","setBasis","workTime","setWorkTime","waitWorkDay","setWaitWorkDay","inTime","setInTime","Before","In","Boolean","basisFields","workerExpression","CurrentDate","isSystemBasis","s","isNow","days","hours","minutes","fn","worker","isFunctionInResult","emptyText","str","inTimeString","prefix","getFormattedPeriodLabel","fieldSuffix","label","labelIndex","labels","getPeriodLabels","userInTime","hourString","padStart","minString","CurrentDateTimeLocal","intervalString","toString","trimStart","h","d","substring","intervalParts","split","setTimeArgs","pop","userOffset","trim","minute","hour","join","fnArgs","re","exec","found","period","Number","diffOffsetMin","floor","allMinutes","userHour","userMin","element","bindToNode","showHint","hideHint","popupHint","isSameNode","rawText","util","nl2br","isStringFilled","PopupWindow","lightShadow","darkMode","offsetTop","bindOptions","html","setAngle","showAngleHint","timeout","clearTimeout","createInstance","popupParameters","height","WorkflowStatus","TrackingEntry","TRIGGER_ACTIVITY_TYPE","entryType","getAllActivityTypes","entryWorkflowStatus","getAllWorkflowStatuses","UNKNOWN_ACTIVITY_TYPE","EXECUTE_ACTIVITY_TYPE","CLOSE_ACTIVITY_TYPE","CANCEL_ACTIVITY_TYPE","FAULT_ACTIVITY_TYPE","CUSTOM_ACTIVITY_TYPE","REPORT_ACTIVITY_TYPE","ATTACHED_ENTITY_TYPE","ERROR_ACTIVITY_TYPE","DEBUG_ACTIVITY_TYPE","DEBUG_AUTOMATION_TYPE","DEBUG_DESIGNER_TYPE","DEBUG_LINK_TYPE","typeId","CREATED","RUNNING","SUSPENDED","TERMINATED","RobotEntry","WAITING","entry","addEntry","datetime","workflowStatus","errors","note","notes","TriggerEntry","isTriggerEntry","TrackingEntryBuilder","workflowId","logEntry","assign","isKnownActivityType","isKnownWorkflowStatus","Tracker","addLogs","logEntryBuilder","rawEntry","setLogEntry","build","addTriggerEntry","addRobotEntry","robotEntry","isRobotRunning","isWorkflowCompleted","isCurrentStatus","getCurrentStatusId","isRobotRunningAtAnotherStatus","isRobotRunningAndCurrentWorkflowCompleted","documentSigned","LOG","Robot","isFrameMode","clonedRobot","robotData","generateName","Delay","getDelayInterval","other","Activated","toBoolean","CONDITION_TYPE","Mixed","getProperties","hasOwn","getRobotLog","DelayName","viewData","isInvalid","activated","isActivated","targetLabel","isView","responsibleLabel","labelText","getReturnFieldsDescription","getTitle","isArrayFilled","globalVariables","variable","globalConstants","constant","textContent","setAttribute","responsibleUrl","href","responsibleId","delayLabel","format","isExecuteAfterPrevious","delayNode","statusNode","subscribeOnce","isBindedToNode","delayNotes","getDelayNotes","AUTOCOMPLETED","getLogErrors","titleClassName","clipTitle","root","titleNode","onTitleEditClick","lastChild","deleteBottomButton","actionsButton","deleteRobot","openRobotSettingsDialog","DialogContext","copiedRobot","robotTitle","newTitle","Template","copyRobotTo","getNextRobot","e","preventDefault","PopupWindowButton","click","nameNode","elements","PopupWindowButtonLink","fullTitle","arrTitle","lastWord","delay","ExecuteAfterPrevious","draggableItem","stub","droppableItem","droppableColumn","templateNode","beforeRobot","insertRobot","insertRobotNode","getDescriptionTitle","description","getRobotDescription","isObject","hasReturnProperties","hasAdditionalResultProperties","some","addProperty","fieldId","appendPropertyMods","printableTag","expression","usages","Document","Constant","Variable","Parameter","GlobalConstant","GlobalVariable","Activity","collectExpressions","conditions","collectParsedExpressions","systemExpressionRegExp","RegExp","SYSTEM_EXPRESSION_PATTERN","groups","parsedUsage","activityRegExp","getBrokenLinks","collectUsages","objectsData","getConstants","getVariables","getParameters","getSerializedRobots","brokenLinks","size","source","searchInSource","brokenLinkObject","getRobotById","getReturnProperty","buttonText","menu","Menu","menuItem","setActivated","UserOptions","options","storedValue","save","keys","renderAfterPreviousImageBlock","renderParallelImageBlock","renderRow","uid","imageRenderFunction","radio","attr","showExecutionQueuePopup","settings","afterPreviousContent","parallelContent","currentValue","Button","Color","PRIMARY","onSubmitButtonClick","FormData","LINK","padding","clientWidth","backgroundColor","onClose","constants","variables","templateContainerNode","delayMinLimitM","CONSTANTS","PARAMETERS","VARIABLES","DOCUMENT_STATUS","markExternalModified","IS_EXTERNAL_MODIFIED","fromRaw","initRobots","initButtons","isExternalModified","ROBOTS","selectedRobots","activatedRobots","deactivatedRobots","serialized","ID","isNaN","DOCUMENT_TYPE","createExternalLocker","createManageModeButton","createTerminateRobotsButton","getTemplateId","createConstantsEditButton","createParametersEditButton","createExternalEditTemplateButton","draggableNode","bizprocEditorUrl","anchor","onExternalEditTemplateButtonClick","manageButton","onManageModeButtonClick","manageButtonNode","hasRunningRobots","getRunningCustomRobots","terminateButton","onTerminateRobotsButtonClick","templateId","notifyMessage","stopTemplate","message","loaders","loader","Notification","Center","notify","autoHideDelay","CUSTOM_ROBOTS","constantsEditorUrl","parametersEditorUrl","iconBlock","onUnsetExternalModifiedClick","onExternalModifiedSearch","InfoHelper","openBizprocEditor","intoRaw","CLASS","Title","DIALOG_CONTEXT","parentRobot","isEqual","robotNode","beforeNode","saveCallback","getRobotSettingsDialog","robotBrokenLinks","renderDelaySettings","renderBrokenLinkAlert","setRobotSettingsDialog","DOCUMENT_CATEGORY_ID","addMenuGroup","document_status","robot_json","toJsonString","context_robots_json","r","form_name","dialogRows","showRobotSettingsPopup","popupMinWidth","popupWidth","initRobotSettingsControls","descriptionTitle","hasTitle","titleBarContent","bindAll","isNewRobot","saveRobotSettings","minWidth","minHeight","resizable","destroyRobotSettingsControls","onPopupResize","onResizeRobotSettings","onPopupResizeEnd","getWidth","robotSettingsControls","initRobotSettingsControl","controlProps","SelectorContext","useSwitcherMenu","rootGroupTitle","needSync","checkbox","SelectorManager","SELECTOR_ROLE_USER","fieldProperty","parse","SELECTOR_ROLE_FILE","createSelectorByRole","SELECTOR_ROLE_SAVE_STATE","renderTo","onFieldSelect","addConstant","addParameter","onOpenMenu","skipRobot","skipId","templateRobot","hasReturnFields","onBeforeSave","delayTypeNode","delayValueNode","delayValueTypeNode","delayBasisNode","delayWorkTimeNode","delayWaitWorkDayNode","delayInTimeNode","delayIntervalLabelNode","docFields","minLimitM","delayIntervalSelector","DelayIntervalSelector","labelNode","onchange","useAfterBasis","showWaitWorkDay","delay_type","delay_value","delay_value_type","delay_basis","delay_worktime","delay_wait_workday","delay_in_time","setDelayInterval","hasTemplate","setExecuteAfterPrevious","execute_after_previous","onOpenFieldMenu","isMixedCondition","needAddGroups","selectorManager","SelectorItemsManager","activityResultFields","groupsWithChildren","group","addGroup","moreInfoNode","showMoreLabel","bindOnce","scrollHeight","closeBtn","btnNode","onBeforeSaveRobotSettings","form_data_json","form_data","updateData","setDelaySettingsFromForm","ERRORS","externalModified","SuperTitle","generatePropertyId","getConstant","Description","Default","param","parameter","getParameter","existsList","index","robotUsages","usage","unsubscribe","automationGlobals","dstTemplate","copyTo","additionalFields","getRobotsWithReturnFields","flatMap","ask","tabs","sort","executionQueueLink","input","afterPrevious","adjust","robotWithReturnFields","enrichFieldsWithModifiers","friendly","printable","server","responsible","shortLink","rawDocumentType","documentId","categoryId","findIndex","documentFields","slice","newStatusId","parentGroup","setObject","setField","operator","setOperator","Operator","EQUAL","NOT_EQUAL","Field","addItem","activityNames","clonedGroup","joiner","clonedCondition","itemsArray","Branch1","Branch2","valueIndex","BETWEEN","JOINER","And","Or","ConditionSelector","conditionValueNode","conditionValueNode2","conditionObjectNode","conditionFieldNode","conditionOperatorNode","objectNode","fieldNode","operatorNode","valueNode","setLabelText","bindLabelNode","getOperatorLabel","EMPTY","getField","valueLabel","onLabelClick","showPopup","filterFields","objectSelect","fieldSelectLabel","fieldSelect","onFieldSelectorClick","selectedField","valueInput","valueWrapper","operatorSelect","createOperatorNode","operatorWrapper","onFieldChange","firstChild","valueInputs","updateValueNode","fieldDialog","globalContext","InlineSelectorCondition","fireEvent","openMenu","value2","isDomNode","conditionWrapper","getOperators","Multiple","onOperatorChange","tpl","getTemplate","getGVariable","foundRobot","fieldType","multiple","allLabels","getAllLabels","list","NOT_EMPTY","CONTAIN","NOT_CONTAIN","IN","NOT_IN","GREATER_THEN","GREATER_THEN_OR_EQUAL","LESS_THEN","LESS_THEN_OR_EQUAL","isUndefined","filtered","docField","currentDocument","docType","valueNodes","renderControlPublic","targetInput","parseTargetProperties","operatorList","operatorId","BaseEvent","btn","removeButtonNode","removeCondition","switcherBtnAnd","switcherBtnOr","inputNode","joinerNode","toggleClass","formatValuePrintable","createValueNode","getItems","hasConditions","isCollapsed","collapseButtonTitle","collapsed","conditionContent","btnToggleList","btnTextNode","addButton","toggleText","Draggable","container","CLONE","dragElement","createNewField","oldField","newField","objectId","modifier","systemExpression","startsWith","endsWith","modifiersMap","useModifiers","canUseModifier","printablePrefix","names","printableName","isCustomField","BaseType","Group","constructor","Error","TypeError","setSuperTitle","groupId","hasGroup","normalizedItem","superGroupTitle","normalizedGroup","searchable","childGroup","supertitle","entityId","GroupId","DocumentGroup","rootGroupId","DOCUMENT","groupKey","groupName","shift","addGroupItem","customData","FileGroup","FILES","InlineSelector","menuButton","replaceOnWrite","renderWith","propertyType","skipPropertiesSwitcher","openPropertiesSwitcherMenu","fillGroups","onMenuOpen","Dialog","dropdownMode","enableSearch","injectDialogMenuTitles","showAvatars","getCustomData","compactView","fillFieldsGroups","fillFileGroup","documentGroup","fileFields","fileGroup","disabled","currentItem","injectDialogMenuSupertitles","child","inputType","tagName","expressionOption","selected","hiddenInput","getElementById","selectionEnd","beforePart","middlePart","afterPart","substr","originalGroup","newGroup","toExpression","fromString","keyCode","altKey","shiftKey","InlineTimeSelector","getFormat","formatId","Date","convertBitrixFormat","dateFormat","dateTimeFormat","getMenuWindow","date","setHours","DateTimeFormat","getTime","hasParentNode","chevron","maxHeight","Manager","selectorProps","FileSelector","SELECTOR_ROLE_INLINE","SELECTOR_ROLE_INLINE_HTML","InlineSelectorHtml","SELECTOR_ROLE_INLINE_TIME","SELECTOR_ROLE_TIME","TimeSelector","SaveStateCheckbox","SELECTOR_ROLE_MENU","MenuSelector","target","bindTargetEvents","firstElementChild","insertText","editor","InsertHtml","synchro","IsFocusedOnTextarea","textareaView","Focus","WrapWith","Sync","SaveContent","ResizeSceleton","handler","removeCustomEvent","dom","cont","header","footer","cutHeader","shouldSaveHeader","cutFooter","shouldSaveFooter","editorId","BXHtmlEditor","Get","savedState","MENU_ITEM_CLASS_ACTIVE","MENU_ITEM_CLASS_INACTIVE","hiddenSelect","hiddenOption","config","prepareItems","menuParams","cacheable","additionalUserFields","userSelector","TYPE","None","File","Disk","required","valueInputName","typeInputName","useDisk","labelFile","labelDisk","fileItem","setValues","ids","childNodes","wrapper","idSalt","fileRadio","fileTypeOptions","diskFileRadio","diskUploader","layout","addItems","addButtonNode","addButtonDesc","Automation","DiskUploader","msg","diskAttachFiles","diskAttachedFiles","diskSelectFile","diskSelectFileLegend","diskUploadFile","diskUploadFileLegend","setMode","newType","SIZE","VIEW_URL","itemNode","itemField","closeWnd","setTime","showClock","CClockSelector","start_time","Show","time","timeParts","part","timeFormat","prepareBasisFields","showDelayIntervalPopup","createAfterControlNode","createBeforeControlNode","createInControlNode","workTimeCheckBox","saveFormData","fieldsMenu","valueTypeMenu","timeName","valueAfter","hiddenRow","createValueTypeSelector","labelAfter","radioAfter","valueBefore","labelBefore","radioBefore","labelIn","radioIn","labelTexts","onValueTypeSelectorClick","valueId","delayType","onMenuItemClick","delimiter","system","hintText","radioNow","setNow","test","toInteger","delayIntervalType","hint","initNode","basisField","getBasisField","basisValue","beforeBasisNodeText","beforeBasisValueNode","beforeBasisNode","onBasisClick","inBasisValueNode","inBasisNode","formattedValue","isAvailable","workDayCheckbox","AutomationGlobals","parameters","Globals","Instance","updatedGlobals","globals","newGlobals","prop","VisibilityName","concat","deletedGlobals","Visibility","visibilityName","Statuses","stagesContainerNode","stagesContainer","backgroundNode","bgcolor","borderColor","bigint","red","green","blue","isDarkColor","ConstantGroup","ActivityResultGroup","activities","ACTIVITY_RESULT","activity","TriggerResultGroup","TRIGGER_RESULT","VariableGroup","documentTitle","activityResultFieldsTitle","triggerResultFields","variablesGroup","constantsGroup","robotResultGroup","triggerResultGroup","BeginningGuide","isElementNode","article","Guide","steps","bottom","onEvents","getPopup","setAutoHide","showNextStep","AutomationGuide","isShownRobotGuide","isShownTriggerGuide","guide","getCurrentStep","contains","subtitles","subtitle","contextInstance","tryGetGlobalContext","setGlobalContext"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit