File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/bizproc/automation/dist/automation.bundle.js.map
Back
{"version":3,"file":"automation.bundle.js","sources":["../src/template-scope.js","../src/templates-scheme.js","../src/view-mode.js","../src/trigger.js","../src/helper.js","../src/designer.js","../src/trigger-manager.js","../src/document/document.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/template.js","../src/condition/condition.js","../src/condition/condition-group.js","../src/selectors/condition-selector.js","../src/selectors/condition-group-selector.js","../src/selectors/manager.js","../src/selectors/inline-time-selector.js","../src/selectors/inline-selector.js","../src/selectors/inline-selector-condition.js","../src/selectors/inline-selector-html.js","../src/selectors/save-state-checkbox.js","../src/selectors/user-selector.js","../src/selectors/file-selector.js","../src/selectors/time-selector.js","../src/delay-interval-selector.js","../src/context/base-context.js","../src/context/selector-context.js","../src/context/context.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}","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 } 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.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\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\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 } from \"main.core\";\nimport { 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 } from \"bizproc.automation\";\nimport { Alert, AlertColor, AlertIcon } from \"ui.alerts\";\n\nexport class TriggerManager extends EventEmitter\n{\n\t#triggersContainerNode: HTMLElement;\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\n\tconstructor(triggersContainerNode: HTMLElement)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Bizproc.Automation');\n\n\t\tthis.#triggersContainerNode = triggersContainerNode;\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}\n\n\tonSearch(event)\n\t{\n\t\tthis.#triggers.forEach(trigger => trigger.onSearch(event));\n\t}\n\n\tenableManageMode()\n\t{\n\t\tthis.#viewMode = ViewMode.manage();\n\t\tconst deleteButtons = document.querySelectorAll('[data-role=\"btn-delete-trigger\"]');\n\t\tdeleteButtons.forEach(node => Dom.hide(node));\n\n\t\tthis.#triggers.forEach(trigger => Dom.addClass(trigger.node, '--locked-node'));\n\t}\n\n\tdisableManageMode()\n\t{\n\t\tthis.#viewMode = ViewMode.edit();\n\t\tconst deleteButtons = document.querySelectorAll('[data-role=\"btn-delete-trigger\"]');\n\t\tdeleteButtons.forEach(node => Dom.show(node));\n\n\t\tthis.#triggers.forEach(trigger => Dom.removeClass(trigger.node, '--locked-node'));\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.querySelectorAll('.bizproc-automation-trigger-item-wrapper').forEach((node) => {\n\t\t\tDom.addClass(node, 'bizproc-automation-trigger-item-wrapper-draggable');\n\t\t});\n\t}\n\n\tdisableDragAndDrop()\n\t{\n\t\tthis.#triggers.forEach(trigger => trigger.unregisterItem(trigger.node));\n\t\tthis.#triggersContainerNode.querySelectorAll('.bizproc-automation-trigger-item-wrapper').forEach((node) => {\n\t\t\tDom.removeClass(node, 'bizproc-automation-trigger-item-wrapper-draggable');\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\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 (let i = 0; i < availableTriggers.length; ++i)\n\t\t{\n\t\t\tif (code === availableTriggers[i]['CODE'])\n\t\t\t{\n\t\t\t\treturn availableTriggers[i];\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\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\tDom.append(this.renderConditionSettings(trigger), form);\n\n\t\tconst iconHelp = Dom.create('div', {\n\t\t\tattrs: { className: 'bizproc-automation-robot-help' },\n\t\t\tevents: {click: (event) => this.emit('TriggerManager:onHelpClick', event)}\n\t\t});\n\t\tDom.append(iconHelp, form);\n\n\t\tconst title = this.getTriggerName(trigger.getCode());\n\n\t\tDom.append(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_TRIGGER_NAME') + ':'\n\t\t}), form);\n\n\t\tDom.append(Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings\" },\n\t\t\tchildren: [\n\t\t\t\tDom.create(\"input\", {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclassName: '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: trigger.getName() || title\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t],\n\t\t}), form);\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\tBX.onCustomEvent(\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: trigger,\n\t\t\tform: form\n\t\t});\n\n\t\tconst self = this;\n\t\tconst popup = new BX.PopupWindow(Helper.generateUniqueId(), null, {\n\t\t\ttitleBar: title,\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: function(popup)\n\t\t\t\t{\n\t\t\t\t\tDesigner.getInstance().setTriggerSettingsDialog(null);\n\t\t\t\t\tself.destroySettingsDialogControls();\n\t\t\t\t\tpopup.destroy();\n\t\t\t\t\tDom.removeClass(self.#triggersContainerNode, 'automation-base-blocked');\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\tconst formData = BX.ajax.prepareForm(form);\n\t\t\t\t\t\t\ttrigger.setName(formData['data']['name']);\n\n\t\t\t\t\t\t\tif (triggerData['SETTINGS'])\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.#setTriggerProperties(trigger, triggerData['SETTINGS']['Properties'], form);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tBX.onCustomEvent(\n\t\t\t\t\t\t\t\t'BX.Bizproc.Automation.TriggerManager:onSaveSettings-'+trigger.getCode(),\n\t\t\t\t\t\t\t\t[trigger, formData]\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tself.setConditionSettingsFromForm(formData['data'], trigger);\n\t\t\t\t\t\t\ttrigger.setAllowBackwards(formData['data']['allow_backwards'] === 'Y');\n\n\t\t\t\t\t\t\tif (self.canSetExecuteBy())\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttrigger.setExecuteBy(formData['data']['execute_by']);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (trigger.draft)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t// remove orange/yellow color\n\n\t\t\t\t\t\t\t\t//self.#triggers.push(trigger);\n\t\t\t\t\t\t\t\t//self.insertTriggerNode(trigger.getStatusId(), trigger.node)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t//analytics\n\t\t\t\t\t\t\tajax.runAction(\n\t\t\t\t\t\t\t\t'bizproc.analytics.push',\n\t\t\t\t\t\t\t\t{\n\t\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\t}\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tdelete trigger.draft;\n\n\t\t\t\t\t\t\ttrigger.reInit();\n\t\t\t\t\t\t\tself.markModified();\n\t\t\t\t\t\t\tpopup.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\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\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(Dom.create(\"span\", {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: \"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-top bizproc-automation-popup-settings-title-autocomplete\",\n\t\t\t\t},\n\t\t\t\ttext: property.Name + ':',\n\t\t\t}), form);\n\n\t\t\tDom.append(Dom.create(\"div\", {\n\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings\" },\n\t\t\t\tchildren: [\n\t\t\t\t\tBX.Bizproc.FieldType.renderControl(\n\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],\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)\n\t\t\t\t],\n\t\t\t}), form);\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{\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\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{fields: getGlobalContext().document.getFields()},\n\t\t);\n\t\tconst selector = this.conditionSelector;\n\n\t\treturn Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings\" },\n\t\t\tchildren: [\n\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings-block\" },\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tDom.create(\"span\", {\n\t\t\t\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings-title\" },\n\t\t\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_ROBOT_CONDITION') + \":\",\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tselector.createNode(),\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t]\n\t\t});\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});\n\n\t\tDom.append(\n\t\t\tDom.create(\"div\", {\n\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings\" },\n\t\t\t\tchildren: [\n\t\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings-block\" },\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\tDom.create(\"span\", {\n\t\t\t\t\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings-title\" },\n\t\t\t\t\t\t\t\ttext: property.Name + \":\"\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tselector.createNode()\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\tform\n\t\t);\n\t}\n\n\t#setConditionGroupValue(property, form)\n\t{\n\t\tconst formData = BX.ajax.prepareForm(form);\n\t\tconst conditionGroup = ConditionGroup.createFromForm(\n\t\t\tformData['data'],\n\t\t\tproperty.Id\n\t\t);\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(Dom.create(\"span\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-autocomplete\" },\n\t\t\ttext: property.Name + ':'\n\t\t}), form);\n\n\t\tDom.append(Dom.create('input', {\n\t\t\tprops: {\n\t\t\t\ttype: 'hidden',\n\t\t\t\tvalue: value,\n\t\t\t\tname: 'code'\n\t\t\t}\n\t\t}), form);\n\n\t\tconst hookLinkTextarea = Dom.create(\"textarea\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-textarea\",\n\t\t\t\tplaceholder: \"...\",\n\t\t\t\treadonly: 'readonly',\n\t\t\t\tname: 'webhook_handler'\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\tclick()\n\t\t\t\t{\n\t\t\t\t\tthis.select();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tDom.append(Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings\" },\n\t\t\tchildren: [hookLinkTextarea]\n\t\t}), form);\n\n\t\tDom.append(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_WEBHOOK_ID'),\n\t\t}), form);\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{\n\t\t\t\t\tconst loaderConfig = property.Settings.PasswordLoader;\n\n\t\t\t\t\tBX.ajax.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\tfunction(response)\n\t\t\t\t\t\t{\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\tDom.create(\n\t\t\t\t\t'div',\n\t\t\t\t\t{\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\tclassName: 'bizproc-automation-popup-checkbox-item',\n\t\t\t\t\t\t\t'data-field': field['Id']\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\tDom.create(\n\t\t\t\t\t\t\t\t'label',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\t\t\tclassName: 'bizproc-automation-popup-chk-label'\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\tDom.create(\n\t\t\t\t\t\t\t\t\t\t\t'input', {\n\t\t\t\t\t\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName: 'bizproc-automation-popup-chk',\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\t\t\t\t\t\t\t\t\tname: fieldName,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: field['Id'],\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked: true\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\tdocument.createTextNode(field['Name']),\n\t\t\t\t\t\t\t\t\t]\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\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(function(field)\n\t\t\t{\n\t\t\t\tmenuItems.push({\n\t\t\t\t\ttext: BX.Text.encode(field['Name']),\n\t\t\t\t\tfield: field,\n\t\t\t\t\tonclick: function(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\tBX.Main.MenuManager.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: (BX.pos(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: function(popup)\n\t\t\t\t\t\t{\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\tDom.create(\n\t\t\t\t'span',\n\t\t\t\t{\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclassName: \"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-autocomplete\"\n\t\t\t\t\t},\n\t\t\t\t\ttext: property.Name + ':',\n\t\t\t\t}\n\t\t\t),\n\t\t\tform\n\t\t);\n\n\t\tconst fieldListNode = Dom.create(\n\t\t\t'div',\n\t\t\t{\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: 'bizproc-automation-popup-checkbox',\n\t\t\t\t},\n\t\t\t\tchildren: [],\n\t\t\t}\n\t\t);\n\t\tDom.append(fieldListNode, form);\n\n\t\tDom.append(\n\t\t\tDom.create(\n\t\t\t\t'div',\n\t\t\t\t{\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclassName: 'bizproc-automation-popup-settings bizproc-automation-popup-settings-text',\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tDom.create(\n\t\t\t\t\t\t\t'span',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\t\tclassName: \"bizproc-automation-popup-settings-link\"\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\ttext: property.Settings.ChooseFieldLabel,\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tclick: function()\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfieldSelectorHandler(this, fieldListNode);\n\t\t\t\t\t\t\t\t\t}\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\tform\n\t\t);\n\n\t\tif (Type.isArray(value))\n\t\t{\n\t\t\tvalue.forEach(function(field)\n\t\t\t{\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(Dom.create(\"span\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-top bizproc-automation-popup-settings-title-autocomplete\",\n\t\t\t},\n\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_TRIGGER_EXECUTE_BY') + ':',\n\t\t}), form);\n\n\t\tDom.append(Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings\" },\n\t\t\tchildren: [\n\t\t\t\tBX.Bizproc.FieldType.renderControl(\n\t\t\t\t\tgetGlobalContext().document.getRawType(),\n\t\t\t\t\t{\n\t\t\t\t\t\tType: 'user'\n\t\t\t\t\t},\n\t\t\t\t\t'execute_by',\n\t\t\t\t\ttrigger.draft\n\t\t\t\t\t\t? Helper.getResponsibleUserExpression(getGlobalContext().document.getFields())\n\t\t\t\t\t\t: trigger.getExecuteBy()\n\t\t\t\t),\n\t\t\t],\n\t\t}), form);\n\t}\n\n\trenderAllowBackwardsControl(trigger, form)\n\t{\n\t\tDom.append(Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-checkbox\" },\n\t\t\tchildren: [\n\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\tattrs: { className: \"bizproc-automation-popup-checkbox-item\" },\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tDom.create(\"label\", {\n\t\t\t\t\t\t\tattrs: { className: \"bizproc-automation-popup-chk-label\" },\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\tDom.create(\"input\", {\n\t\t\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\t\t\tclassName: 'bizproc-automation-popup-chk',\n\t\t\t\t\t\t\t\t\t\ttype: \"checkbox\",\n\t\t\t\t\t\t\t\t\t\tname: \"allow_backwards\",\n\t\t\t\t\t\t\t\t\t\tvalue: 'Y'\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\t\t\tchecked: trigger.isBackwardsAllowed()\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tdocument.createTextNode(Loc.getMessage('BIZPROC_AUTOMATION_CMP_TRIGGER_ALLOW_REVERSE')),\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}), form);\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\t\tconst self = this;\n\n\t\tsetTimeout(function()\n\t\t{\n\t\t\tBX.ajax({\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 (let i = 0; i < controlNodes.length; ++i)\n\t\t{\n\t\t\tlet control = null;\n\t\t\tconst role = controlNodes[i].getAttribute('data-role');\n\n\t\t\tif (role === 'user-selector')\n\t\t\t{\n\t\t\t\tcontrol = BX.Bizproc.UserSelector.decorateNode(controlNodes[i]);\n\t\t\t}\n\n\t\t\tBX.UI.Hint.init(controlNodes[i]);\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)\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});\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 (let i = 0; i < properties.length; ++i)\n\t\t{\n\t\t\tif (properties[i].Id === propertyId)\n\t\t\t{\n\t\t\t\treturn properties[i];\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\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\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\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\treturn this.#statusList[this.#currentStatusIndex]?.STATUS_ID;\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, Loc } from 'main.core';\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: ?Array<[number, number]>;\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\t\t\tif (params['value'])\n\t\t\t{\n\t\t\t\tthis.setValue(params['value']);\n\t\t\t}\n\t\t\tif (params['valueType'])\n\t\t\t{\n\t\t\t\tthis.setValueType(params['valueType']);\n\t\t\t}\n\t\t\tif (params['basis'])\n\t\t\t{\n\t\t\t\tthis.setBasis(params['basis']);\n\t\t\t}\n\t\t\tif (params['workTime'])\n\t\t\t{\n\t\t\t\tthis.setWorkTime(params['workTime']);\n\t\t\t}\n\t\t\tif (params['waitWorkDay'])\n\t\t\t{\n\t\t\t\tthis.setWaitWorkDay(params['waitWorkDay']);\n\t\t\t}\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()\n\t{\n\t\treturn 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\treturn ('0' + this.#inTime[0]).slice(-2) + ':' + ('0' + this.#inTime[1]).slice(-2);\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,\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\n\t\t\tconst setTimeArgs = intervalString.split(',');\n\t\t\tconst minute = parseInt(setTimeArgs.pop().trim());\n\t\t\tconst hour = parseInt(setTimeArgs.pop().trim());\n\n\t\t\tparams.inTime = [hour || 0, minute || 0];\n\t\t\tintervalString = setTimeArgs.join(',');\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]);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tparams['basis'] = intervalString;\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\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}\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);\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 = !!flag;\n\n\t\treturn this;\n\t}\n\n\tsetWaitWorkDay(flag): this\n\t{\n\t\tthis.#waitWorkDay = !!flag;\n\n\t\treturn this;\n\t}\n\n\tsetInTime(value: ?Array<[number, number]>): this\n\t{\n\t\tthis.#inTime = value;\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 || null,\n\t\t}\n\t}\n\n\ttoExpression(basisFields, workerExpression): string\n\t{\n\t\tlet basis = this.#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 (this.#type === DelayInterval.DELAY_TYPE.Before)\n\t\t{\n\t\t\tadd = '-';\n\t\t}\n\n\t\tif (days > 0)\n\t\t{\n\t\t\tadd += days + 'd';\n\t\t}\n\t\tif (hours > 0)\n\t\t{\n\t\t\tadd += hours + 'h';\n\t\t}\n\t\tif (minutes > 0)\n\t\t{\n\t\t\tadd += minutes + 'i';\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 = fn + '(' + basis + ',\"' + add + '\"' + (worker ? ',' + worker : '') + ')'\n\n\t\tif (this.#type === DelayInterval.DELAY_TYPE.In && this.#inTime)\n\t\t{\n\t\t\tif (!this.#workTime)\n\t\t\t{\n\t\t\t\tresult = basis;\n\t\t\t}\n\n\t\t\tresult = `settime(${result}, ${this.#inTime[0] || 0}, ${this.#inTime[1] || 0})`;\n\t\t}\n\n\t\treturn '=' + 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');\n\t\t\tif (Type.isArray(fields))\n\t\t\t{\n\t\t\t\tfor (let i = 0; i < fields.length; ++i)\n\t\t\t\t{\n\t\t\t\t\tif (this.#basis === fields[i].SystemExpression)\n\t\t\t\t\t{\n\t\t\t\t\t\tstr += ' ' + fields[i].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\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')\n\t\t\t\t\t: Loc.getMessage('BIZPROC_AUTOMATION_CMP_FOR_TIME_1')\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 (let i = 0; i < fields.length; ++i)\n\t\t\t\t{\n\t\t\t\t\tif (this.#basis === fields[i].SystemExpression)\n\t\t\t\t\t{\n\t\t\t\t\t\tstr += ' ' + fieldSuffix + ' ' + fields[i].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 = (value % 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\tif (period === 'i')\n\t\t{\n\t\t\tlabels = [\n\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_MIN1'),\n\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_MIN2'),\n\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_MIN3')\n\t\t\t];\n\t\t}\n\t\telse if (period === 'h')\n\t\t{\n\t\t\tlabels = [\n\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_HOUR1'),\n\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_HOUR2'),\n\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_HOUR3')\n\t\t\t];\n\t\t}\n\t\telse if (period === 'd')\n\t\t{\n\t\t\tlabels = [\n\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_DAY1'),\n\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_DAY2'),\n\t\t\t\tLoc.getMessage('BIZPROC_AUTOMATION_CMP_DAY3')\n\t\t\t];\n\t\t}\n\n\t\treturn labels;\n\t}\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'));\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}","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, Tag } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { Document } from './document/document';\nimport { Template } from './template';\nimport { DelayInterval } from './delay-interval';\nimport { ViewMode } from './view-mode';\nimport { HelpHint } from './help-hint';\nimport { ConditionGroup, Helper } from 'bizproc.automation';\nimport { Tracker } from './tracker/tracker'\nimport { TrackingStatus } from './tracker/types';\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\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() * 100000)\n\t\t\t+ '_' + parseInt(Math.random() * 100000)\n\t\t\t+ '_' + parseInt(Math.random() * 100000)\n\t\t\t+ '_' + parseInt(Math.random() * 100000)\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...BX.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 = Object.assign({}, data);\n\t\t}\n\t\tif (!this.#data.Name)\n\t\t{\n\t\t\tthis.#data.Name = Robot.generateName();\n\t\t}\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\tnode.parentNode.replaceChild(this.#node, 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 this.getProperties().hasOwnProperty(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\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\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\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())\n\t\t{\n\t\t\twrapperClass += ' bizproc-automation-robot-container-wrapper-draggable';\n\t\t}\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 = Dom.create(\"a\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"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},\n\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_AUTOMATICALLY')\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.indexOf('{=Document') >= 0)\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.indexOf('{=A') >= 0)\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\trobot.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.indexOf('{=GlobalVar:') >= 0 && 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.indexOf('{=GlobalConst:') >= 0 && 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) > 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\tthis.#viewMode.isEdit() ? \"a\" : \"span\",\n\t\t\t{\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: this.#viewMode.isEdit() ? '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 = Dom.create(\"div\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-robot-information\"\n\t\t\t}\n\t\t});\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\tstatusNode.classList.add('--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.#viewMode.isEdit() && this.canEdit())\n\t\t{\n\t\t\ttitleClassName += ' bizproc-automation-robot-title-text-editable';\n\t\t}\n\n\t\tconst div = Dom.create(\"div\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: containerClass,\n\t\t\t\t'data-role': 'robot-container',\n\t\t\t\t'data-type': 'item-robot',\n\t\t\t\t'data-id': this.getId()\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tclassName: \"bizproc-automation-robot-container-checkbox\"\n\t\t\t\t\t}\n\t\t\t\t}),\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: { className: \"bizproc-automation-robot-deadline\" },\n\t\t\t\t\t\t\tchildren: [delayNode]\n\t\t\t\t\t\t}),\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-robot-title\"\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\t\t\t\tclassName: titleClassName,\n\t\t\t\t\t\t\t\t\t\ttitle: this.getTitle(),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\thtml: this.clipTitle(this.getTitle()),\n\t\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\t\tclick: event => {\n\t\t\t\t\t\t\t\t\t\t\tif (this.#viewMode.isEdit() && this.canEdit() && !this.#viewMode.isManage())\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tthis.onTitleEditClick(event);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}\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\tDom.create(\"div\", {\n\t\t\t\t\t\t\tattrs: { className: \"bizproc-automation-robot-settings\" },\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\t\t\t\t\tattrs: { className: \"bizproc-automation-robot-settings-title\" },\n\t\t\t\t\t\t\t\t\ttext: targetLabel + ':'\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\ttargetNode\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tstatusNode,\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t]\n\t\t});\n\n\t\tif (this.canEdit())\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 = Dom.create('SPAN', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: 'bizproc-automation-robot-btn-delete'\n\t\t\t\t}\n\t\t\t});\n\t\t\tEvent.bind(deleteBtn, 'click', this.onDeleteButtonClick.bind(this, deleteBtn));\n\t\t\tdiv.lastChild.appendChild(deleteBtn);\n\n\t\t\tconst copyBtn = Dom.create('div', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: 'bizproc-automation-robot-btn-copy'\n\t\t\t\t},\n\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_COPY') || 'copy'\n\t\t\t});\n\t\t\tEvent.bind(copyBtn, 'click', this.onCopyButtonClick.bind(this, copyBtn));\n\t\t\tdiv.appendChild(copyBtn);\n\n\t\t\tconst settingsBtn = Dom.create('div', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: 'bizproc-automation-robot-btn-settings'\n\t\t\t\t},\n\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_EDIT')\n\t\t\t});\n\t\t\tEvent.bind(div, 'click', this.onSettingsButtonClick.bind(this, div));\n\n\t\t\tdiv.appendChild(settingsBtn);\n\t\t}\n\n\t\treturn div;\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\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\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}\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\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\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\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\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()\n\t{\n\t\tconst usages = BX.clone(this.collectUsages());\n\n\t\tif (!this.template)\n\t\t{\n\t\t\treturn false;\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\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\treturn true;\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\treturn 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}\n\n\t\treturn false;\n\t}\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\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]) && Type.isPlainObject(this.#options[category][key]);\n\t}\n}","import {Type, Dom, Loc, Event, Runtime, Uri} 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,\n} from 'bizproc.automation';\nimport { Robot } from './robot'\nimport { UserOptions } from './user-options';\nimport { ViewMode } from './view-mode';\nimport { Helper } from './helper';\nimport { HelpHint } from './help-hint';\nimport { DelayInterval } from './delay-interval';\n\nexport class Template extends EventEmitter\n{\n\t#context: Context;\n\n\tconstants: Object<string, any>;\n\tglobalConstants: Array<Object>;\n\tvariables: Object<string, any>;\n\tglobalVariables: Array<Object>;\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\tglobalConstants: ?Array<Object>,\n\t\tvariables: Object<string, any>,\n\t\tglobalVariables: ?Array<Object>,\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.globalConstants = Type.isArray(params.globalConstants) ? params.globalConstants : [];\n\t\tthis.variables = params.variables;\n\t\tthis.globalVariables = Type.isArray(params.globalVariables) ? params.globalVariables : [];\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\t\t\tif (!Type.isPlainObject(this.#data.PARAMETERS))\n\t\t\t{\n\t\t\t\tthis.#data.PARAMETERS = {};\n\t\t\t}\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\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()\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\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(): ?object\n\t{\n\t\treturn this.#context.document.statusList.find(status => String(status.STATUS_ID) === this.getStatusId());\n\t}\n\n\tgetTemplateId()\n\t{\n\t\tconst id = parseInt(this.#data.ID);\n\n\t\treturn !isNaN(id) ? id : 0;\n\t}\n\n\tinitButtons()\n\t{\n\t\tif (this.isExternalModified())\n\t\t{\n\t\t\tthis.createExternalLocker();\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}\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 => robot.enableManageMode(isActive));\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 => robot.disableManageMode());\n\t\t\t}\n\n\t\t\tthis.#templateNode.querySelectorAll('.bizproc-automation-robot-container-wrapper').forEach(node => {\n\t\t\t\tDom.addClass(node, 'bizproc-automation-robot-container-wrapper-draggable');\n\t\t\t});\n\t\t}\n\t}\n\n\tenableDragAndDrop()\n\t{\n\t\tthis.#robots.forEach(robot => robot.registerItem(robot.node));\n\n\t\tthis.#templateNode.querySelectorAll('.bizproc-automation-robot-container-wrapper').forEach(node => {\n\t\t\tDom.addClass(node, 'bizproc-automation-robot-container-wrapper-draggable');\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 self = this;\n\t\tconst anchor = Dom.create('a', {\n\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_EXTERNAL_EDIT'),\n\t\t\tprops: {\n\t\t\t\thref: '#'\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\tclick(event)\n\t\t\t\t{\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tif (!self.#viewMode.isManage())\n\t\t\t\t\t{\n\t\t\t\t\t\tself.onExternalEditTemplateButtonClick(this);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-robot-btn-set\",\n\t\t\t\ttarget: '_top'\n\t\t\t}\n\t\t});\n\n\t\tif (!this.#context.bizprocEditorUrl.length)\n\t\t{\n\t\t\tDom.addClass(anchor, 'bizproc-automation-robot-btn-set-locked');\n\t\t}\n\n\t\tthis.#buttonsNode.appendChild(anchor);\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 = Dom.create('a', {\n\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_MANAGE_ROBOTS'),\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-robot-btn-set\",\n\t\t\t\ttarget: '_top',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tcursor: 'pointer',\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\tclick: event => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.onManageModeButtonClick(manageButton);\n\t\t\t\t},\n\t\t\t}\n\t\t});\n\n\t\tthis.#buttonsNode.appendChild(manageButton);\n\t}\n\n\tonManageModeButtonClick(manageButtonNode: HTMLElement)\n\t{\n\t\tif (!this.canEdit())\n\t\t{\n\t\t\tHelpHint.showNoPermissionsHint(manageButtonNode);\n\t\t}\n\t\telse\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}\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\t!this.#viewMode.isManage()\n\t\t\t\t? this.#context.constantsEditorUrl.replace('#ID#', this.getTemplateId())\n\t\t\t\t: '#'\n\t\t;\n\n\t\tif (!url.length)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst anchor = Dom.create('a', {\n\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_CONSTANTS_EDIT'),\n\t\t\tprops: {\n\t\t\t\thref: url\n\t\t\t},\n\t\t\tattrs: { className: \"bizproc-automation-robot-btn-set\" }\n\t\t});\n\n\t\tthis.#buttonsNode.appendChild(anchor);\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 || this.#viewMode.isManage())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst anchor = Dom.create('a', {\n\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_PARAMETERS_EDIT'),\n\t\t\tprops: {\n\t\t\t\thref: url\n\t\t\t},\n\t\t\tattrs: { className: \"bizproc-automation-robot-btn-set\" }\n\t\t});\n\n\t\tthis.#buttonsNode.appendChild(anchor);\n\t}\n\n\tcreateExternalLocker()\n\t{\n\t\tconst div = Dom.create(\"div\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-robot-container\"\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: 'bizproc-automation-robot-container-wrapper bizproc-automation-robot-container-wrapper-lock'\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: { className: \"bizproc-automation-robot-deadline\" }\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\t\t\tattrs: { className: \"bizproc-automation-robot-title\" },\n\t\t\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_EXTERNAL_EDIT_TEXT')\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 (this.#viewMode.isEdit())\n\t\t{\n\t\t\tconst settingsBtn = Dom.create('div', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: 'bizproc-automation-robot-btn-settings'\n\t\t\t\t},\n\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_EDIT')\n\t\t\t});\n\n\t\t\tconst self = this;\n\t\t\tEvent.bind(div, 'click', function (event) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tif (!self.#viewMode.isManage())\n\t\t\t\t{\n\t\t\t\t\tself.onExternalEditTemplateButtonClick(this);\n\t\t\t\t}\n\t\t\t});\n\t\t\tdiv.appendChild(settingsBtn);\n\n\t\t\tconst deleteBtn = Dom.create('SPAN', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: 'bizproc-automation-robot-btn-delete'\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tEvent.bind(deleteBtn, 'click', function (event) {\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tif (!self.#viewMode.isManage())\n\t\t\t\t{\n\t\t\t\t\tself.onUnsetExternalModifiedClick(this);\n\t\t\t\t}\n\t\t\t});\n\t\t\tdiv.lastChild.appendChild(deleteBtn);\n\t\t}\n\n\t\tthis.#listNode.appendChild(div);\n\t\tthis.#templateNode = div;\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\tBX[!query ? 'removeClass' : 'addClass'](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\t\t\treturn;\n\t\t}\n\t\tif (!this.#context.bizprocEditorUrl.length)\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\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\tthis.#listNode.appendChild(robotNode);\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\tif (context.changeRobot)\n\t\t\t{\n\t\t\t\tDesigner.getInstance().getRobotSettingsDialog().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_robot_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});\n\n\t\tDesigner.getInstance().setRobotSettingsDialog({\n\t\t\ttemplate: this,\n\t\t\tcontext: context,\n\t\t\trobot: robot,\n\t\t\tform: form\n\t\t});\n\n\t\tform.appendChild(this.renderDelaySettings(robot));\n\t\tform.appendChild(this.renderConditionSettings(robot));\n\t\tif (robot.hasBrokenLink())\n\t\t{\n\t\t\tform.appendChild(this.renderBrokenLinkAlert());\n\t\t}\n\n\t\tconst iconHelp = Dom.create('div', {\n\t\t\tattrs: { className: 'bizproc-automation-robot-help' },\n\t\t\tevents: {\n\t\t\t\tclick: (event) => this.emit('Template:help:show', event)\n\t\t\t},\n\t\t});\n\t\tform.appendChild(iconHelp);\n\t\tcontext['DOCUMENT_CATEGORY_ID'] = this.#context.document.getCategoryId();\n\n\t\tBX.ajax({\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: context,\n\t\t\t\trobot_json: Helper.toJsonString(robot.serialize()),\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', {\n\t\t\t\t\t\thtml: html\n\t\t\t\t\t});\n\t\t\t\t\tform.appendChild(dialogRows);\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);\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 titleBar;\n\t\tconst robotTitle =\n\t\t\trobot.hasTitle()\n\t\t\t\t? robot.getTitle()\n\t\t\t\t: Loc.getMessage('BIZPROC_AUTOMATION_ROBOT_SETTINGS_TITLE')\n\t\t;\n\n\t\tconst me = this;\n\t\tconst popup = new BX.PopupWindow(Helper.generateUniqueId(), null, {\n\t\t\ttitleBar: titleBar || robotTitle,\n\t\t\tcontent: form,\n\t\t\tcloseIcon: true,\n\t\t\twidth: popupWidth,\n\t\t\tresizable: {\n\t\t\t\tminWidth: popupMinWidth,\n\t\t\t\tminHeight: 100\n\t\t\t},\n\t\t\toffsetLeft: 0,\n\t\t\toffsetTop: 0,\n\t\t\tcloseByEsc: true,\n\t\t\tdraggable: {restrict: false},\n\t\t\tevents: {\n\t\t\t\tonPopupClose: (popup) => {\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: function() {\n\t\t\t\t\tif (me.#userOptions)\n\t\t\t\t\t{\n\t\t\t\t\t\tme.#userOptions.set(\n\t\t\t\t\t\t\t'defaults',\n\t\t\t\t\t\t\t'robot_settings_popup_width',\n\t\t\t\t\t\t\tthis.getWidth()\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\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 isNewRobot = robot.draft;\n\n\t\t\t\t\t\t\tme.saveRobotSettings(form, robot, BX.delegate(function()\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t\t\tif (isNewRobot)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tme.emit('Template:robot:add', { robot });\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (saveCallback)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tsaveCallback(robot);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, this), this.buttonNode);\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: function(){\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\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 (let i = 0; i < controlNodes.length; ++i)\n\t\t{\n\t\t\tthis.initRobotSettingsControl(robot, controlNodes[i]);\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.map((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\t\t.flat()\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\t#addRobotReturnFieldsToSelector(event: BaseEvent, skipRobot: ?Robot)\n\t{\n\t\tconst selector = event.getData().selector;\n\t\tconst isMixedCondition = event.getData().isMixedCondition;\n\n\t\tif (Type.isBoolean(isMixedCondition) && !isMixedCondition)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst robotMenuItems = (\n\t\t\tthis\n\t\t\t\t.#getRobotsWithReturnFields(skipRobot)\n\t\t\t\t.map((robot) => ({\n\t\t\t\t\tid: robot.getId(),\n\t\t\t\t\ttitle: robot.getTitle(),\n\t\t\t\t\tchildren: robot.getReturnFieldsDescription().map((field) => ({\n\t\t\t\t\t\tid: field.Expression,\n\t\t\t\t\t\ttitle: field.Name,\n\t\t\t\t\t\tcustomData: { field },\n\t\t\t\t\t}))\n\t\t\t\t}))\n\t\t);\n\n\t\tif (robotMenuItems.length > 0)\n\t\t{\n\t\t\tselector.addGroup('__RESULT', {\n\t\t\t\tid: '__RESULT',\n\t\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_CMP_ROBOT_LIST'),\n\t\t\t\tchildren: robotMenuItems\n\t\t\t});\n\t\t}\n\t}\n\n\t#getRobotsWithReturnFields(skipRobot: ?Robot = undefined): 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\t\tconst idSalt = Helper.generateUniqueId();\n\n\t\tconst delayTypeNode = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: \"delay_type\",\n\t\t\t\tvalue: delay.type\n\t\t\t}\n\t\t});\n\t\tconst delayValueNode = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: \"delay_value\",\n\t\t\t\tvalue: delay.value\n\t\t\t}\n\t\t});\n\t\tconst delayValueTypeNode = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: \"delay_value_type\",\n\t\t\t\tvalue: delay.valueType\n\t\t\t}\n\t\t});\n\t\tconst delayBasisNode = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: \"delay_basis\",\n\t\t\t\tvalue: delay.basis\n\t\t\t}\n\t\t});\n\t\tconst delayWorkTimeNode = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: \"delay_worktime\",\n\t\t\t\tvalue: delay.workTime ? 1 : 0\n\t\t\t}\n\t\t});\n\n\t\tconst delayWaitWorkDayNode = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: \"delay_wait_workday\",\n\t\t\t\tvalue: delay.waitWorkDay ? 1 : 0\n\t\t\t}\n\t\t});\n\n\t\tconst delayInTimeNode = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: \"delay_in_time\",\n\t\t\t\tvalue: delay.inTimeString,\n\t\t\t}\n\t\t});\n\n\t\tconst delayIntervalLabelNode = Dom.create(\"span\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-settings-link bizproc-automation-delay-interval-basis\"\n\t\t\t}\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 (let i = 0; i < docFields.length; ++i)\n\t\t\t{\n\t\t\t\tconst field = docFields[i];\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: basisFields,\n\t\t\tminLimitM: minLimitM,\n\t\t\tuseAfterBasis: true,\n\t\t\tshowWaitWorkDay: true,\n\t\t});\n\n\t\tlet executeAfterPreviousBlock = null;\n\t\tif (robot.hasTemplate())\n\t\t{\n\t\t\tconst executeAfterPreviousCheckbox = Dom.create(\"input\", {\n\t\t\t\tattrs: {\n\t\t\t\t\ttype: \"checkbox\",\n\t\t\t\t\tid: \"param-group-3-1\" + idSalt,\n\t\t\t\t\tname: \"execute_after_previous\",\n\t\t\t\t\tvalue: '1',\n\t\t\t\t\tstyle: 'vertical-align: middle'\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (robot.isExecuteAfterPrevious())\n\t\t\t{\n\t\t\t\texecuteAfterPreviousCheckbox.setAttribute('checked', 'checked');\n\t\t\t}\n\t\t\texecuteAfterPreviousBlock = Dom.create(\"div\", {\n\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings-block\" },\n\t\t\t\tchildren: [\n\t\t\t\t\texecuteAfterPreviousCheckbox,\n\t\t\t\t\tDom.create(\"label\", {\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\tfor: \"param-group-3-1\" + idSalt,\n\t\t\t\t\t\t\tstyle: 'color: #535C69'\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_AFTER_PREVIOUS_WIDE')\n\t\t\t\t\t})\n\t\t\t\t]\n\t\t\t})\n\t\t}\n\n\t\tconst div = Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings bizproc-automation-popup-settings-flex\" },\n\t\t\tchildren: [\n\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings-block bizproc-automation-popup-settings-block-flex\" },\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tDom.create(\"span\", {\n\t\t\t\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings-title-wrapper\" },\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\tdelayTypeNode,\n\t\t\t\t\t\t\t\tdelayValueNode,\n\t\t\t\t\t\t\t\tdelayValueTypeNode,\n\t\t\t\t\t\t\t\tdelayBasisNode,\n\t\t\t\t\t\t\t\tdelayWorkTimeNode,\n\t\t\t\t\t\t\t\tdelayWaitWorkDayNode,\n\t\t\t\t\t\t\t\tdelayInTimeNode,\n\t\t\t\t\t\t\t\tDom.create(\"span\", {\n\t\t\t\t\t\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-left\" },\n\t\t\t\t\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_TO_EXECUTE') + \":\"\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tdelayIntervalLabelNode\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\texecuteAfterPreviousBlock\n\t\t\t]\n\t\t});\n\n\t\tdelayIntervalSelector.init(delay);\n\n\t\treturn div;\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});\n\n\t\treturn Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings\" },\n\t\t\tchildren: [\n\t\t\t\tDom.create(\"div\", {\n\t\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings-block\" },\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tDom.create(\"span\", {\n\t\t\t\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings-title\" },\n\t\t\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_ROBOT_CONDITION') + \":\"\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tthis.conditionSelector.createNode(),\n\t\t\t\t\t],\n\t\t\t\t})\n\t\t\t]\n\t\t});\n\t}\n\n\tonOpenMenu(event: BaseEvent, robot: Robot): void\n\t{\n\t\tthis.#addRobotReturnFieldsToSelector(event, robot);\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\tsetConditionSettingsFromForm(formFields, robot)\n\t{\n\t\trobot.setCondition(ConditionGroup.createFromForm(formFields));\n\n\t\treturn this;\n\t}\n\n\trenderBrokenLinkAlert()\n\t{\n\t\tconst alert = Dom.create('div', {\n\t\t\tattrs: {className:'ui-alert ui-alert-warning ui-alert-icon-info ui-alert-xs'}\n\t\t});\n\n\t\tconst message = Dom.create('span', {\n\t\t\tattrs: {className: 'ui-alert-message'},\n\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_BROKEN_LINK_MESSAGE_ERROR')\n\t\t});\n\n\t\talert.appendChild(message);\n\t\talert.appendChild(Dom.create('span', {\n\t\t\tattrs: {className: 'ui-alert-close-btn'},\n\t\t\tevents: {\n\t\t\t\tclick() {\n\t\t\t\t\talert.style.display = 'none';\n\t\t\t\t}\n\t\t\t}\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\tbtnNode.classList.add('popup-window-button-wait');\n\t\t}\n\n\t\tthis.onBeforeSaveRobotSettings();\n\t\tconst formData = BX.ajax.prepareForm(form);\n\n\t\tconst ajaxUrl = this.#context.ajaxUrl;\n\t\tconst documentSigned = this.#context.signedDocument;\n\t\tBX.ajax({\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']),\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\tbtnNode.classList.remove('popup-window-button-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 = BX.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 = BX.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\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 (let i = 0; i < constants.length; ++i)\n\t\t{\n\t\t\tif (constants[i].Id === id)\n\t\t\t{\n\t\t\t\treturn constants[i];\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 = BX.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 (let i = 0; i < params.length; ++i)\n\t\t{\n\t\t\tif (params[i].Id === id)\n\t\t\t{\n\t\t\t\treturn params[i];\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 = BX.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\tsetGlobalVariables(globalVariables: Array = []): this\n\t{\n\t\tthis.globalVariables = globalVariables;\n\n\t\treturn this;\n\t}\n\n\tsetGlobalConstants(globalConstants: Array = []): this\n\t{\n\t\tthis.globalConstants = globalConstants;\n\n\t\treturn this;\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\t\t\tif (params['field'])\n\t\t\t{\n\t\t\t\tthis.setField(params['field']);\n\t\t\t}\n\t\t\tif (params['operator'])\n\t\t\t{\n\t\t\t\tthis.setOperator(params['operator']);\n\t\t\t}\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\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\tif (!operator)\n\t\t{\n\t\t\toperator = Operator.EQUAL;\n\t\t}\n\n\t\tthis.#operator = operator;\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}","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\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\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\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}","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';\n\nimport type { ConditionSelectorOptions } from './types';\nimport { BaseEvent } from 'main.core.events';\nimport { Operator } from \"bizproc.condition\";\n\nexport class ConditionSelector\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\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: BX.PopupWindow;\n\tfieldDialog: ?InlineSelectorCondition;\n\t#selectedField;\n\n\tconstructor(condition, options: ?ConditionSelectorOptions)\n\t{\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\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}\n\t}\n\n\tcreateNode()\n\t{\n\t\tconst conditionObjectNode = this.objectNode = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: this.#fieldPrefix + \"object[]\",\n\t\t\t\tvalue: this.#condition.object\n\t\t\t}\n\t\t});\n\t\tconst conditionFieldNode = this.fieldNode = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: this.#fieldPrefix + \"field[]\",\n\t\t\t\tvalue: this.#condition.field\n\t\t\t}\n\t\t});\n\t\tconst conditionOperatorNode = this.operatorNode = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: this.#fieldPrefix + \"operator[]\",\n\t\t\t\tvalue: this.#condition.operator\n\t\t\t}\n\t\t});\n\n\t\tconst value = Type.isArrayFilled(this.#condition.value) ? this.#condition.value[0] : this.#condition.value;\n\t\tthis.valueNode = this.#createValueNode(value)\n\t\tconst conditionValueNode = this.valueNode;\n\n\t\tlet conditionValueNode2;\n\t\tif (this.#condition.operator === Operator.BETWEEN)\n\t\t{\n\t\t\tconst value2 =\n\t\t\t\t(Type.isArrayFilled(this.#condition.value) && this.#condition.value.length > 1)\n\t\t\t\t\t? this.#condition.value[1]\n\t\t\t\t\t: ''\n\t\t\t;\n\n\t\t\tthis.#valueNode2 = this.#createValueNode(value2);\n\t\t\tconditionValueNode2 = this.#valueNode2;\n\t\t}\n\n\t\tconst conditionJoinerNode = this.joinerNode = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: this.#fieldPrefix + \"joiner[]\",\n\t\t\t\tvalue: this.#joiner\n\t\t\t}\n\t\t});\n\n\t\tconst labelNode = this.labelNode = Dom.create(\"span\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-settings-link-wrapper\"\n\t\t\t}\n\t\t});\n\n\t\tthis.setLabelText();\n\t\tthis.bindLabelNode();\n\n\t\tconst removeButtonNode = Dom.create(\"span\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-settings-link-remove\"\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\tclick: this.removeCondition.bind(this)\n\t\t\t}\n\t\t});\n\n\t\tconst joinerButtonNode = Dom.create(\"span\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-settings-link bizproc-automation-condition-joiner\"\n\t\t\t},\n\t\t\ttext: ConditionGroup.JOINER.message(this.#joiner),\n\t\t});\n\n\t\tEvent.bind(joinerButtonNode, 'click', this.changeJoiner.bind(this, joinerButtonNode));\n\n\t\tthis.node = Dom.create(\"span\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings-link-wrapper bizproc-automation-condition-wrapper\" },\n\t\t\tchildren: [\n\t\t\t\tconditionObjectNode,\n\t\t\t\tconditionFieldNode,\n\t\t\t\tconditionOperatorNode,\n\t\t\t\tconditionValueNode,\n\t\t\t\tconditionValueNode2,\n\t\t\t\tconditionJoinerNode,\n\t\t\t\tlabelNode,\n\t\t\t\tremoveButtonNode,\n\t\t\t\tjoinerButtonNode\n\t\t\t]\n\t\t});\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\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\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-link\">${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-link\">\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-link\">${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\telse\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-link\">\n\t\t\t\t\t\t${Loc.getMessage('BIZPROC_AUTOMATION_ROBOT_CONDITION_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}\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'BIZPROC_AUTOMATION_ROBOT_CONDITION_BETWEEN_VALUE',\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\t?? ''\n\t\t\t);\n\t\t}\n\t\telse if(operator.indexOf('empty') < 0)\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\t\t\treturn;\n\t\t}\n\n\t\tconst fields = this.filterFields();\n\n\t\tconst objectSelect = Dom.create('input', {\n\t\t\tattrs: {\n\t\t\t\ttype: 'hidden',\n\t\t\t\tclassName: 'bizproc-automation-popup-settings-dropdown'\n\t\t\t}\n\t\t});\n\t\tconst fieldSelect = Dom.create('input', {\n\t\t\tattrs: {\n\t\t\t\ttype: 'hidden',\n\t\t\t\tclassName: 'bizproc-automation-popup-settings-dropdown'\n\t\t\t}\n\t\t});\n\t\tconst fieldSelectLabel = Dom.create('div', {\n\t\t\tattrs: {\n\t\t\t\tclassName: 'bizproc-automation-popup-settings-dropdown',\n\t\t\t\treadonly: 'readonly'\n\t\t\t},\n\t\t\tchildren: [fieldSelect]\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\n\t\tconst valueWrapper = Dom.create('div', {\n\t\t\tattrs: {\n\t\t\t\tclassName: 'bizproc-automation-popup-settings'\n\t\t\t},\n\t\t\tchildren: [valueInput]\n\t\t});\n\n\t\tconst operatorSelect = this.createOperatorNode(selectedField, valueWrapper);\n\t\tconst operatorWrapper = Dom.create('div', {\n\t\t\tattrs: {\n\t\t\t\tclassName: 'bizproc-automation-popup-settings'\n\t\t\t},\n\t\t\tchildren: [operatorSelect]\n\t\t});\n\n\t\tif (this.#condition.field !== '')\n\t\t{\n\t\t\toperatorSelect.value = this.#condition.operator;\n\t\t}\n\n\t\tconst form = Dom.create(\"form\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-select-block\" },\n\t\t\tchildren: [\n\t\t\t\tDom.create('div', {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclassName: 'bizproc-automation-popup-settings'\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [fieldSelectLabel]\n\t\t\t\t}),\n\t\t\t\toperatorWrapper,\n\t\t\t\tvalueWrapper\n\t\t\t]\n\t\t});\n\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\tconst self = this;\n\t\tthis.popup = new BX.PopupWindow('bizproc-automation-popup-set', this.labelNode, {\n\t\t\tclassName: 'bizproc-automation-popup-set',\n\t\t\tautoHide: false,\n\t\t\tcloseByEsc: true,\n\t\t\tcloseIcon: false,\n\t\t\ttitleBar: false,\n\t\t\tangle: true,\n\t\t\toffsetLeft: 45,\n\t\t\toverlay: { backgroundColor: 'transparent' },\n\t\t\tcontent: form,\n\t\t\tbuttons: [\n\t\t\t\tnew BX.PopupWindowButton({\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_CHOOSE'),\n\t\t\t\t\tclassName: \"webform-button webform-button-create\" ,\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\tself.#condition.setObject(objectSelect.value);\n\t\t\t\t\t\t\tself.#condition.setField(fieldSelect.value);\n\t\t\t\t\t\t\tself.#condition.setOperator(operatorWrapper.firstChild.value);\n\n\t\t\t\t\t\t\tconst valueInputs = valueWrapper.querySelectorAll('[name^=\"' + self.#fieldPrefix + 'value\"]');\n\n\t\t\t\t\t\t\tif (valueInputs.length > 0)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlet value = valueInputs[0].value;\n\n\t\t\t\t\t\t\t\tif (self.#condition.operator === Operator.BETWEEN && valueInputs.length > 1)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue = [valueInputs[0].value, valueInputs[1].value];\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tself.#condition.setValue(value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tself.#condition.setValue('');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tself.setLabelText();\n\n\t\t\t\t\t\t\tconst field = self.getField(self.#condition.object, self.#condition.field);\n\t\t\t\t\t\t\tif (field && field.Type === 'UF:address')\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconst input = valueWrapper.querySelector('[name=\"' + self.#fieldPrefix + 'value\"]');\n\t\t\t\t\t\t\t\tself.#condition.setValue(input ? input.value : '');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tself.updateValueNode();\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\tevents: {\n\t\t\t\tonPopupClose()\n\t\t\t\t{\n\t\t\t\t\tthis.destroy();\n\t\t\t\t\tif (self.fieldDialog)\n\t\t\t\t\t{\n\t\t\t\t\t\tself.fieldDialog.destroy();\n\t\t\t\t\t\tdelete(self.fieldDialog);\n\t\t\t\t\t}\n\t\t\t\t\tdelete(self.popup);\n\t\t\t\t}\n\t\t\t}\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\t\t\tif (this.fieldNode)\n\t\t\t{\n\t\t\t\tthis.fieldNode.value = this.#condition.field;\n\t\t\t}\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\t\t\tif (this.valueNode)\n\t\t\t{\n\t\t\t\tthis.valueNode.value = Type.isArrayFilled(this.#condition.value) ? this.#condition.value[0] : this.#condition.value;\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\tconst valueNode1 = this.createValueNode(field, Type.isArrayFilled(value) ? value[0] : value);\n\t\t\tconst valueNode2 = this.createValueNode(field, Type.isArrayFilled(value) ? value[1] : '');\n\n\t\t\treturn Tag.render`\n\t\t\t\t<div>\n\t\t\t\t\t${valueNode1}\n\t\t\t\t\t<div>${ConditionGroup.JOINER.message('AND')}</div>\n\t\t\t\t\t${valueNode2}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\t\telse if (operator.indexOf('empty') < 0)\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\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\t// todo: interface\n\t\t// if (['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 docType = (\n\t\t\tDesigner.getInstance().component\n\t\t\t\t? Designer.getInstance().component.document.getRawType()\n\t\t\t\t: getGlobalContext().document.getRawType()\n\t\t);\n\t\tconst field = BX.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\tthis.#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 (Type.isFunction(this.#onOpenMenu))\n\t\t\t\t{\n\t\t\t\t\tselector.subscribe('onOpenMenu', this.#onOpenMenu);\n\t\t\t\t}\n\t\t\t\tselector.renderTo(node);\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 (var 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\tselect.appendChild(Dom.create('option', {\n\t\t\t\tprops: {value: operatorId},\n\t\t\t\ttext: operatorList[operatorId]\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.#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\t\tthis.#joiner = (this.#joiner === ConditionGroup.JOINER.Or ? ConditionGroup.JOINER.And : ConditionGroup.JOINER.Or);\n\t\tbtn.textContent = ConditionGroup.JOINER.message(this.#joiner);\n\n\t\tif (this.joinerNode)\n\t\t{\n\t\t\tthis.joinerNode.value = this.#joiner;\n\t\t}\n\n\t\tevent.preventDefault();\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}","import { Type, Dom } from 'main.core';\nimport { BaseEvent } from 'main.core.events';\n\nimport { ConditionGroup } from 'bizproc.automation';\nimport { ConditionSelector } from './condition-selector';\nimport { Condition } from 'bizproc.automation';\n\nexport class ConditionGroupSelector\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#rootGroupTitle: ?string;\n\n\tconstructor(conditionGroup: ConditionGroup, options: Object)\n\t{\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\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}\n\t}\n\n\tcreateNode()\n\t{\n\t\tconst me = this;\n\t\tconst conditionNodes = [];\n\t\tconst fields = this.#fields;\n\n\t\tthis.#conditionGroup.getItems().forEach(function(item)\n\t\t{\n\t\t\tconst conditionSelector = new ConditionSelector(item[0], {\n\t\t\t\tfields: fields,\n\t\t\t\tjoiner: item[1],\n\t\t\t\tfieldPrefix: me.#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});\n\n\t\t\tthis.#itemSelectors.push(conditionSelector);\n\t\t\tconditionNodes.push(conditionSelector.createNode());\n\t\t}, this);\n\n\t\tconditionNodes.push(Dom.create(\"a\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings-link\" },\n\t\t\ttext: '[+]',\n\t\t\tevents: {\n\t\t\t\tclick()\n\t\t\t\t{\n\t\t\t\t\tme.addItem(this);\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\n\t\treturn Dom.create(\"span\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings-link-wrapper\" },\n\t\t\tchildren: conditionNodes\n\t\t});\n\t}\n\n\taddItem(buttonNode)\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});\n\t\tthis.#itemSelectors.push(conditionSelector);\n\n\t\tbuttonNode.parentNode.insertBefore(conditionSelector.createNode(), buttonNode);\n\t}\n\n\tdestroy()\n\t{\n\t\tthis.#itemSelectors.forEach(selector => selector.destroy());\n\t\tthis.#itemSelectors = [];\n\t}\n}","import {\n\tFileSelector,\n\tInlineSelector,\n\tInlineSelectorHtml,\n\tSaveStateCheckbox,\n\tTimeSelector,\n\tUserSelector,\n} from 'bizproc.automation';\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\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_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\n\t\t{\n\t\t\treturn undefined;\n\t\t}\n\t}\n}","import {Type, Event, Loc, Text} from 'main.core';\nimport {DateTimeFormat} from 'main.date';\nimport { Menu } from 'main.popup';\n\nexport class InlineTimeSelector\n{\n\t#labelNode: HTMLInputElement = null;\n\n\t#time: string = '';\n\n\t#timeValues: [] = [];\n\t#timeFormat: string;\n\n\t#selector: Menu;\n\n\tconstructor(options: {\n\t\tlabelNode: HTMLInputElement,\n\t})\n\t{\n\t\tif (Type.isPlainObject(options))\n\t\t{\n\t\t\tif (Type.isElementNode(options.labelNode))\n\t\t\t{\n\t\t\t\tthis.#labelNode = options.labelNode;\n\t\t\t}\n\t\t}\n\n\t\tthis.#fillTimeFormat();\n\t\tthis.#fillTimeValues();\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 self = this;\n\t\tconst onclick = function(event, item)\n\t\t{\n\t\t\tevent.preventDefault();\n\t\t\tself.#labelNode.value = Text.encode(item.text);\n\t\t\tthis.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: onclick\n\t\t\t});\n\t\t\tthis.#timeValues.push({\n\t\t\t\tid: hour * 60 + 30,\n\t\t\t\ttext: this.#formatTime(hour, 30),\n\t\t\t\tonclick: onclick\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\tinit(time: string)\n\t{\n\t\tif (Type.isStringFilled(time))\n\t\t{\n\t\t\tthis.#time = time;\n\t\t}\n\n\t\tthis.#setLabelText();\n\t\tthis.#bindLabelNode();\n\t}\n\n\t#setLabelText()\n\t{\n\t\tif (Type.isElementNode(this.#labelNode))\n\t\t{\n\t\t\tthis.#labelNode.textContent = this.#time;\n\t\t}\n\t}\n\n\t#bindLabelNode()\n\t{\n\t\tif (Type.isElementNode(this.#labelNode))\n\t\t{\n\t\t\tEvent.bind(this.#labelNode, 'click', this.#onLabelClick.bind(this));\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})\n\t\t}\n\n\t\tthis.#selector.show();\n\t}\n}","import { SelectorContext, DelayIntervalSelector, Helper, DelayInterval } from 'bizproc.automation';\nimport { Dom, Event, Type, Loc, Tag, Runtime } from \"main.core\";\nimport { EventEmitter } from \"main.core.events\";\n\nimport { Field, MenuGroupItem } from \"./types\";\nimport { MenuManager, Menu } from 'main.popup';\nimport { Dialog } from 'ui.entity-selector';\nimport {InlineTimeSelector} from \"./inline-time-selector\";\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\tthis.#menuGroups[groupId] = this.#normalizeGroup(group);\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\telse if (type === 'time')\n\t\t{\n\t\t\tthis.replaceOnWrite = true;\n\n\t\t\tconst timeSelector = new InlineTimeSelector({labelNode: this.targetInput});\n\n\t\t\ttimeSelector.init(this.targetInput.value);\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\tthis.addGroup('ROOT', {\n\t\t\tid: 'ROOT',\n\t\t\ttitle: this.context.rootGroupTitle,\n\t\t\tsearchable: false,\n\t\t});\n\n\t\tthis.getFields().forEach((field) => {\n\t\t\tlet groupKey = field.Id.indexOf('.') < 0 ? 'ROOT' : field.Id.split('.')[0];\n\t\t\tlet groupName = '';\n\t\t\tlet fieldName = field.Name;\n\n\t\t\tif (field.Name && groupKey !== 'ROOT' && field.Name.indexOf(': ') >= 0)\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 (\n\t\t\t\tfield['Id'].indexOf('ASSIGNED_BY_') === 0\n\t\t\t\t&& field['Id'] !== 'ASSIGNED_BY_ID'\n\t\t\t\t&& field['Id'] !== 'ASSIGNED_BY_PRINTABLE'\n\t\t\t)\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\tfillFileGroup(): void\n\t{\n\t\tconst fileFields = this.getFields().filter((field) => field.Type === 'file');\n\n\t\tif (fileFields.length > 0)\n\t\t{\n\t\t\tthis.addGroup('__FILES', {\n\t\t\t\tid: '__FILES',\n\t\t\t\ttitle: Loc.getMessage('BIZPROC_AUTOMATION_CMP_FILES_LINKS'),\n\t\t\t\tchildren: this.#prepareFilesMenu(fileFields),\n\t\t\t\tsearchable: false,\n\t\t\t});\n\t\t}\n\t}\n\n\t#prepareFilesMenu(fileFields: Array<Field>): Array<MenuGroupItem>\n\t{\n\t\treturn fileFields.map((field) => {\n\t\t\tconst exp = (\n\t\t\t\tfield['ObjectId'] === 'Document'\n\t\t\t\t\t? '{{'+field['Name']+' > shortlink}}'\n\t\t\t\t\t: '{{~'+field['ObjectId']+':'+field['Id']+' > shortlink}}'\n\t\t\t);\n\n\t\t\tlet title = field.Name || field.Id;\n\n\t\t\tif (field.ObjectName)\n\t\t\t{\n\t\t\t\ttitle = field.ObjectName + ': ' + title;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttitle: title,\n\t\t\t\tcustomData: {\n\t\t\t\t\tfield: {\n\t\t\t\t\t\tId: field['Id'] + '_shortlink',\n\t\t\t\t\t\tObjectId: field['ObjectId'],\n\t\t\t\t\t\tName: field['Name'],\n\t\t\t\t\t\tType: 'string',\n\t\t\t\t\t\tExpression: exp,\n\t\t\t\t\t\tSystemExpression: '{='+field['ObjectId']+':'+field['Id']+' > shortlink}'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tid: exp,\n\t\t\t};\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\tconst beforePart = this.targetInput.value.substr(0, this.targetInput.selectionEnd);\n\t\t\t\tconst middlePart = field.Expression;\n\t\t\t\tconst afterPart = this.targetInput.value.substr(this.targetInput.selectionEnd);\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('change', { 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\tconst printablePrefix = Loc.getMessage('BIZPROC_AUTOMATION_CMP_MOD_PRINTABLE_PREFIX');\n\t\tconst names = this.context.fields.map(field => field.Name).join('\\n');\n\n\t\tconst fields = [];\n\t\tthis.basisFields.forEach((field) => {\n\t\t\tfield.ObjectId = 'Document';\n\n\t\t\tconst custom = (field['BaseType'] === 'string' && field['Type'] !== 'string');\n\n\t\t\tif (!custom)\n\t\t\t{\n\t\t\t\tfields.push(field);\n\t\t\t}\n\n\t\t\t//generate printable version\n\t\t\tif (\n\t\t\t\tfield['Type'] === 'user'\n\t\t\t\t||\n\t\t\t\tfield['Type'] === 'bool'\n\t\t\t\t||\n\t\t\t\tfield['Type'] === 'file'\n\t\t\t\t||\n\t\t\t\tcustom\n\t\t\t)\n\t\t\t{\n\t\t\t\tconst printableName = field['Name'] + ' ' + printablePrefix;\n\n\t\t\t\tif (names.indexOf(printableName) < 0)\n\t\t\t\t{\n\t\t\t\t\tconst printableField = BX.clone(field);\n\t\t\t\t\tconst printableTag = (field['Type'] === 'user') ? 'friendly' : 'printable';\n\n\t\t\t\t\tprintableField['Name'] = printableName;\n\t\t\t\t\tprintableField['Type'] = 'string';\n\t\t\t\t\tprintableField['SystemExpression'] = '{=Document:'+printableField['Id']+' > '+printableTag+'}';\n\t\t\t\t\tprintableField['Expression'] = '{{'+field['Name']+' > '+printableTag+'}}';\n\n\t\t\t\t\tfields.push(printableField);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (field['BaseType'] === 'date' || field['BaseType'] === 'datetime' || field['BaseType'] === 'time')\n\t\t\t{\n\t\t\t\tconst serverField = BX.clone(field);\n\t\t\t\tserverField['Name'] += ' ' + Loc.getMessage('BIZPROC_AUTOMATION_CMP_MOD_DATE_BY_SERVER');\n\t\t\t\tserverField['Type'] = 'string';\n\t\t\t\tserverField['SystemExpression'] = `{=Document:${serverField['Id']} > server}`;\n\t\t\t\tserverField['Expression'] = `{{${field['Name']} > server}}`;\n\n\t\t\t\tfields.push(serverField);\n\n\t\t\t\tconst responsibleField = BX.clone(field);\n\t\t\t\tresponsibleField['Name'] += ' ' + Loc.getMessage('BIZPROC_AUTOMATION_CMP_MOD_DATE_BY_RESPONSIBLE');\n\t\t\t\tresponsibleField['Type'] = 'string';\n\t\t\t\tresponsibleField['SystemExpression'] = `{=Document:${serverField['Id']} > responsible}`;\n\t\t\t\tresponsibleField['Expression'] = `{{${field['Name']} > responsible}}`;\n\n\t\t\t\tfields.push(responsibleField);\n\t\t\t}\n\t\t});\n\n\t\treturn fields;\n\t}\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 { 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#menuId: ?string;\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.popupWindow.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\t// this.setFileFields()\n\t\t// this.createDom\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\tthis.#type = config.type || FileSelector.TYPE.File;\n\t\tif (config.selected && !config.selected.length)\n\t\t{\n\t\t\tthis.#type = FileSelector.TYPE.None;\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\tfileTypeOptions.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${fileTypeOptions}\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\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\telse\n\t\t{\n\t\t\tDom.show(this.#diskControllerNode);\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\tthis.#fileItemsNode = Dom.create('span');\n\t\t\tthis.#fileControllerNode = Dom.create('div', {children: [this.#fileItemsNode]});\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')\n\t\t\t});\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\telse\n\t\t{\n\t\t\tDom.show(this.#fileControllerNode);\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\t'diskAttachFiles' : Loc.getMessage('BIZPROC_AUTOMATION_CMP_DISK_ATTACH_FILE'),\n\t\t\t\t\t\t'diskAttachedFiles' : Loc.getMessage('BIZPROC_AUTOMATION_CMP_DISK_ATTACHED_FILES'),\n\t\t\t\t\t\t'diskSelectFile' : Loc.getMessage('BIZPROC_AUTOMATION_CMP_DISK_SELECT_FILE'),\n\t\t\t\t\t\t'diskSelectFileLegend' : Loc.getMessage('BIZPROC_AUTOMATION_CMP_DISK_SELECT_FILE_LEGEND'),\n\t\t\t\t\t\t'diskUploadFile' : Loc.getMessage('BIZPROC_AUTOMATION_CMP_DISK_UPLOAD_FILE'),\n\t\t\t\t\t\t'diskUploadFileLegend' : 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 !!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\n\t\tif (!this.#menuId)\n\t\t{\n\t\t\tthis.#menuId = Helper.generateUniqueId();\n\t\t}\n\n\t\tMenuManager.show(\n\t\t\tthis.#menuId,\n\t\t\taddButtonNode,\n\t\t\tthis.context.get('fileFields').map((field) => ({\n\t\t\t\ttext: Text.encode(field.Name),\n\t\t\t\tfield,\n\t\t\t\tonclick(event, item)\n\t\t\t\t{\n\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\tself.onFieldSelect(field);\n\t\t\t\t}\n\t\t\t})),\n\t\t\t{\n\t\t\t\tautoHide: true,\n\t\t\t\toffsetLeft: Dom.getPosition(addButtonNode)['width'] / 2,\n\t\t\t\tangle: {\n\t\t\t\t\tposition: 'top',\n\t\t\t\t\toffset: 0,\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\n\t\t// this.#menu = MenuManager.currentItem;\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\tArray.from(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\tfor (const id of ids)\n\t\t{\n\t\t\tthis.targetInput.appendChild(Tag.render`\n\t\t\t\t<input\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tname=\"${this.#valueInputName + (this.#multiple ? '[]' : '')}\"\n\t\t\t\t\tvalue=\"${id}\"\n\t\t\t\t/>\n\t\t\t`);\n\t\t}\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 { MenuManager } from 'main.popup';\nimport { getGlobalContext } from \"./automation\";\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'),\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', BX.delegate(this.onLabelClick, 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 form = Dom.create(\"form\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-select-block\" }\n\t\t});\n\n\t\tconst radioNow = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-select-input\",\n\t\t\t\tid: uid + \"now\",\n\t\t\t\ttype: \"radio\",\n\t\t\t\tvalue: 'now',\n\t\t\t\tname: \"type\"\n\t\t\t}\n\t\t});\n\t\tif (delay.isNow())\n\t\t{\n\t\t\tradioNow.setAttribute('checked', 'checked');\n\t\t}\n\n\t\tconst labelNow = Dom.create(\"label\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-select-wrapper\",\n\t\t\t\tfor: uid + \"now\"\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tDom.create('span', {\n\t\t\t\t\tattrs: {className: 'bizproc-automation-popup-settings-title'},\n\t\t\t\t\ttext: Loc.getMessage(this.useAfterBasis ? 'BIZPROC_AUTOMATION_CMP_BASIS_NOW' : 'BIZPROC_AUTOMATION_CMP_AT_ONCE_2')\n\t\t\t\t})\n\t\t\t]\n\t\t});\n\n\t\tconst labelNowHelpNode = Dom.create('span', {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-status-help bizproc-automation-status-help-right\",\n\t\t\t\t'data-hint': Loc.getMessage(this.useAfterBasis ? 'BIZPROC_AUTOMATION_CMP_DELAY_NOW_HELP_2' : 'BIZPROC_AUTOMATION_CMP_DELAY_NOW_HELP')\n\t\t\t}\n\t\t});\n\t\tlabelNow.appendChild(labelNowHelpNode);\n\n\t\tform.appendChild(Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-select-item\" },\n\t\t\tchildren: [radioNow, labelNow]\n\t\t}));\n\n\t\tform.appendChild(this.createAfterControlNode());\n\n\t\tif (this.basisFields.length > 0)\n\t\t{\n\t\t\tform.appendChild(this.createBeforeControlNode());\n\t\t\tform.appendChild(this.createInControlNode());\n\t\t}\n\n\t\tconst workTimeRadio = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tid: uid + \"worktime\",\n\t\t\t\tname: \"worktime\",\n\t\t\t\tvalue: '1',\n\t\t\t\tstyle: 'vertical-align: middle'\n\t\t\t},\n\t\t\tprops: {\n\t\t\t\tchecked: delay.workTime\n\t\t\t}\n\t\t});\n\n\t\tconst workTimeHelpNode = Dom.create('span', {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-status-help bizproc-automation-status-help-right\",\n\t\t\t\t'data-hint': Loc.getMessage('BIZPROC_AUTOMATION_DELAY_WORK_TIME_HELP')\n\t\t\t}\n\t\t});\n\n\t\tform.appendChild(Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-settings-title\" },\n\t\t\tchildren: [\n\t\t\t\tworkTimeRadio,\n\t\t\t\tDom.create(\"label\", {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclassName: \"bizproc-automation-popup-settings-lbl\",\n\t\t\t\t\t\tfor: uid + \"worktime\"\n\t\t\t\t\t},\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_DELAY_WORK_TIME_MSGVER_1')\n\t\t\t\t}),\n\t\t\t\tworkTimeHelpNode\n\t\t\t]\n\t\t}));\n\n\t\tif (this.showWaitWorkDay)\n\t\t{\n\t\t\tform.appendChild(this.#createWaitWorkDayNode());\n\t\t}\n\n\t\tconst self = this;\n\t\t//init modern Help tips\n\t\tBX.UI.Hint.init(form);\n\t\tconst popup = new BX.PopupWindow(Helper.generateUniqueId(), this.labelNode, {\n\t\t\tautoHide: true,\n\t\t\tcloseByEsc: true,\n\t\t\tcloseIcon: false,\n\t\t\ttitleBar: false,\n\t\t\tangle: true,\n\t\t\toffsetLeft: 20,\n\t\t\tcontent: form,\n\t\t\tbuttons: [\n\t\t\t\tnew BX.PopupWindowButton({\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_CHOOSE'),\n\t\t\t\t\tclassName: 'webform-button webform-button-create bizproc-automation-button-left',\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\tself.saveFormData(new FormData(form));\n\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t}}\n\t\t\t\t})\n\t\t\t],\n\t\t\tevents: {\n\t\t\t\tonPopupClose()\n\t\t\t\t{\n\t\t\t\t\tif (self.fieldsMenu)\n\t\t\t\t\t{\n\t\t\t\t\t\tself.fieldsMenu.popupWindow.close();\n\t\t\t\t\t}\n\t\t\t\t\tif (self.valueTypeMenu)\n\t\t\t\t\t{\n\t\t\t\t\t\tself.valueTypeMenu.popupWindow.close();\n\t\t\t\t\t}\n\t\t\t\t\tthis.destroy();\n\t\t\t\t}\n\t\t\t},\n\t\t\toverlay: { backgroundColor: 'transparent' }\n\t\t});\n\n\t\tpopup.show();\n\t}\n\n\tsaveFormData(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\tthis.delay.setInTime(formData.get('basis_in_time') ? formData.get('basis_in_time').split(':') : null);\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\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\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\tcreateAfterControlNode()\n\t{\n\t\tconst delay = this.delay;\n\t\tconst uid = Helper.generateUniqueId();\n\n\t\tconst radioAfter = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-select-input\",\n\t\t\t\tid: uid,\n\t\t\t\ttype: \"radio\",\n\t\t\t\tvalue: DelayInterval.DELAY_TYPE.After,\n\t\t\t\tname: \"type\"\n\t\t\t}\n\t\t});\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}\n\n\t\tconst valueNode = Dom.create('input', {\n\t\t\tattrs: {\n\t\t\t\ttype: 'text',\n\t\t\t\tname: 'value_after',\n\n\t\t\t\tclassName: 'bizproc-automation-popup-settings-input'\n\t\t\t},\n\t\t\tprops: {\n\t\t\t\tvalue: delay.type === DelayInterval.DELAY_TYPE.After && delay.value ? delay.value : (this.minLimitM || 5)\n\t\t\t}\n\t\t});\n\n\t\tconst labelAfter = Dom.create(\"label\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-select-wrapper\",\n\t\t\t\tfor: uid\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tDom.create('span', {\n\t\t\t\t\tattrs: {className: 'bizproc-automation-popup-settings-title'},\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_THROUGH_3')\n\t\t\t\t}),\n\t\t\t\tvalueNode,\n\t\t\t\tthis.createValueTypeSelector('value_type_after')\n\t\t\t]\n\t\t});\n\n\t\tif (this.useAfterBasis)\n\t\t{\n\t\t\tlabelAfter.appendChild(Dom.create('span', {\n\t\t\t\tattrs: {className: 'bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-auto-width'},\n\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_AFTER')\n\t\t\t}));\n\n\t\t\tlet basisField = this.getBasisField(delay.basis, true);\n\t\t\tlet basisValue = delay.basis;\n\t\t\tif (!basisField)\n\t\t\t{\n\t\t\t\tbasisField = this.getBasisField(DelayInterval.BASIS_TYPE.CurrentDateTime, true);\n\t\t\t\tbasisValue = basisField.SystemExpression;\n\t\t\t}\n\n\t\t\tconst beforeBasisValueNode = Dom.create('input', {\n\t\t\t\tattrs: {\n\t\t\t\t\ttype: \"hidden\",\n\t\t\t\t\tname: \"basis_after\",\n\t\t\t\t\tvalue: basisValue\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst self = this;\n\t\t\tconst beforeBasisNode = Dom.create('span', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: \"bizproc-automation-popup-settings-link bizproc-automation-delay-interval-basis\"\n\t\t\t\t},\n\t\t\t\ttext: basisField ? basisField.Name : Loc.getMessage('BIZPROC_AUTOMATION_CMP_CHOOSE_DATE_FIELD'),\n\t\t\t\tevents: {\n\t\t\t\t\tclick(event)\n\t\t\t\t\t{\n\t\t\t\t\t\tself.onBasisClick(event, this, function(field)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbeforeBasisNode.textContent = field.Name;\n\t\t\t\t\t\t\tbeforeBasisValueNode.value = field.SystemExpression;\n\t\t\t\t\t\t}, DelayInterval.DELAY_TYPE.After);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tlabelAfter.appendChild(beforeBasisValueNode);\n\t\t\tlabelAfter.appendChild(beforeBasisNode);\n\t\t}\n\n\t\tif (!this.useAfterBasis)\n\t\t{\n\t\t\tconst afterHelpNode = Dom.create('span', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: \"bizproc-automation-status-help bizproc-automation-status-help-right\",\n\t\t\t\t\t'data-hint': Loc.getMessage('BIZPROC_AUTOMATION_CMP_DELAY_AFTER_HELP')\n\t\t\t\t}\n\t\t\t});\n\t\t\tlabelAfter.appendChild(afterHelpNode);\n\t\t}\n\n\t\treturn Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-select-item\" },\n\t\t\tchildren: [radioAfter, labelAfter]\n\t\t});\n\t}\n\n\tcreateBeforeControlNode()\n\t{\n\t\tconst delay = this.delay;\n\t\tconst uid = Helper.generateUniqueId();\n\n\t\tconst radioBefore = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-select-input\",\n\t\t\t\tid: uid,\n\t\t\t\ttype: \"radio\",\n\t\t\t\tvalue: DelayInterval.DELAY_TYPE.Before,\n\t\t\t\tname: \"type\"\n\t\t\t}\n\t\t});\n\n\t\tif (delay.type === DelayInterval.DELAY_TYPE.Before)\n\t\t{\n\t\t\tradioBefore.setAttribute('checked', 'checked');\n\t\t}\n\n\t\tconst valueNode = Dom.create('input', {\n\t\t\tattrs: {\n\t\t\t\ttype: 'text',\n\t\t\t\tname: 'value_before',\n\n\t\t\t\tclassName: 'bizproc-automation-popup-settings-input'\n\t\t\t},\n\t\t\tprops: {\n\t\t\t\tvalue: delay.type === DelayInterval.DELAY_TYPE.Before && delay.value ? delay.value : (this.minLimitM || 5)\n\t\t\t}\n\t\t});\n\n\t\tconst labelBefore = Dom.create(\"label\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-select-wrapper\",\n\t\t\t\tfor: uid\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tDom.create('span', {\n\t\t\t\t\tattrs: {className: 'bizproc-automation-popup-settings-title'},\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_FOR_TIME_3')\n\t\t\t\t}),\n\t\t\t\tvalueNode,\n\t\t\t\tthis.createValueTypeSelector('value_type_before'),\n\t\t\t\tDom.create('span', {\n\t\t\t\t\tattrs: {className: 'bizproc-automation-popup-settings-title bizproc-automation-popup-settings-title-auto-width'},\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_BEFORE_1')\n\t\t\t\t})\n\t\t\t]\n\t\t});\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 beforeBasisValueNode = Dom.create('input', {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: \"basis_before\",\n\t\t\t\tvalue: basisValue\n\t\t\t}\n\t\t});\n\n\t\tconst self = this;\n\t\tconst beforeBasisNode = Dom.create('span', {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-settings-link bizproc-automation-delay-interval-basis\"\n\t\t\t},\n\t\t\ttext: basisField ? basisField.Name : Loc.getMessage('BIZPROC_AUTOMATION_CMP_CHOOSE_DATE_FIELD'),\n\t\t\tevents: {\n\t\t\t\tclick(event)\n\t\t\t\t{\n\t\t\t\t\tself.onBasisClick(\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t(field) => {\n\t\t\t\t\t\t\tbeforeBasisNode.textContent = field.Name;\n\t\t\t\t\t\t\tbeforeBasisValueNode.value = field.SystemExpression;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tDelayInterval.DELAY_TYPE.Before\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tlabelBefore.appendChild(beforeBasisValueNode);\n\t\tlabelBefore.appendChild(beforeBasisNode);\n\n\t\tif (!this.useAfterBasis)\n\t\t{\n\t\t\tconst beforeHelpNode = Dom.create('span', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: \"bizproc-automation-status-help bizproc-automation-status-help-right\",\n\t\t\t\t\t'data-hint': Loc.getMessage('BIZPROC_AUTOMATION_CMP_DELAY_BEFORE_HELP')\n\t\t\t\t}\n\t\t\t});\n\t\t\tlabelBefore.appendChild(beforeHelpNode);\n\t\t}\n\n\t\treturn Dom.create(\"div\", {\n\t\t\tattrs: {className: \"bizproc-automation-popup-select-item\"},\n\t\t\tchildren: [radioBefore, labelBefore]\n\t\t});\n\t}\n\n\tcreateInControlNode()\n\t{\n\t\tconst delay = this.delay;\n\t\tconst uid = Helper.generateUniqueId();\n\n\t\tconst radioIn = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-select-input\",\n\t\t\t\tid: uid,\n\t\t\t\ttype: \"radio\",\n\t\t\t\tvalue: DelayInterval.DELAY_TYPE.In,\n\t\t\t\tname: \"type\"\n\t\t\t}\n\t\t});\n\n\t\tif (delay.type === DelayInterval.DELAY_TYPE.In)\n\t\t{\n\t\t\tradioIn.setAttribute('checked', 'checked');\n\t\t}\n\n\t\tconst labelIn = Dom.create(\"label\", {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-select-wrapper\",\n\t\t\t\tfor: uid\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tDom.create('span', {\n\t\t\t\t\tattrs: {className: 'bizproc-automation-popup-settings-title'},\n\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_CMP_IN_TIME_2')\n\t\t\t\t})\n\t\t\t]\n\t\t});\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 inBasisValueNode = Dom.create('input', {\n\t\t\tattrs: {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tname: \"basis_in\",\n\t\t\t\tvalue: basisValue\n\t\t\t}\n\t\t});\n\n\t\tconst self = this;\n\t\tconst inBasisNode = Dom.create('span', {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-popup-settings-link bizproc-automation-delay-interval-basis\"\n\t\t\t},\n\t\t\ttext: basisField ? basisField.Name : Loc.getMessage('BIZPROC_AUTOMATION_CMP_CHOOSE_DATE_FIELD'),\n\t\t\tevents: {\n\t\t\t\tclick(event)\n\t\t\t\t{\n\t\t\t\t\tself.onBasisClick(\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tfield => {\n\t\t\t\t\t\t\tinBasisNode.textContent = field.Name;\n\t\t\t\t\t\t\tinBasisValueNode.value = field.SystemExpression;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tDelayInterval.DELAY_TYPE.In\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t}\n\t\t});\n\t\tlabelIn.appendChild(inBasisValueNode);\n\t\tlabelIn.appendChild(inBasisNode);\n\t\tif (!this.useAfterBasis)\n\t\t{\n\t\t\tconst helpNode = Dom.create('span', {\n\t\t\t\tattrs: {\n\t\t\t\t\tclassName: \"bizproc-automation-status-help bizproc-automation-status-help-right\",\n\t\t\t\t\t'data-hint': Loc.getMessage('BIZPROC_AUTOMATION_CMP_DELAY_IN_HELP')\n\t\t\t\t}\n\t\t\t});\n\t\t\tlabelIn.appendChild(helpNode);\n\t\t}\n\n\t\tconst inTime = Tag.render`\n\t\t\t <span>\n\t\t\t \tTime: <input type=\"time\" value=\"${delay.inTimeString}\" name=\"basis_in_time\"/>\n\t\t\t</span>\n\t\t`;\n\n\t\t// Dom.append(inTime, labelIn); // TODO interface\n\n\t\treturn Dom.create(\"div\", {\n\t\t\tattrs: {className: \"bizproc-automation-popup-select-item\"},\n\t\t\tchildren: [radioIn, labelIn]\n\t\t});\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 label = Dom.create('label', {\n\t\t\tattrs: {className: 'bizproc-automation-popup-settings-link'},\n\t\t\ttext: labelTexts[delay.valueType],\n\t\t});\n\n\t\tconst input = Dom.create('input', {\n\t\t\tattrs: {\n\t\t\t\ttype: 'hidden',\n\t\t\t\tname: name\n\t\t\t},\n\t\t\tprops: {\n\t\t\t\tvalue: delay.valueType\n\t\t\t}\n\t\t});\n\n\t\tEvent.bind(label, 'click', this.onValueTypeSelectorClick.bind(this, label, input));\n\n\t\treturn Dom.create('span', {\n\t\t\tchildren: [label, input]\n\t\t});\n\t}\n\n\tonValueTypeSelectorClick(label, input)\n\t{\n\t\tconst uid = Helper.generateUniqueId();\n\n\t\tconst handler = function(event, item)\n\t\t{\n\t\t\tthis.popupWindow.close();\n\t\t\tinput.value = item.valueId;\n\t\t\tlabel.textContent = item.text;\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\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(event, item)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (callback)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcallback(item.field);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.popupWindow.close();\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_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(event, item)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (callback)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcallback(item.field);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t}\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'].indexOf('DATE_CREATE') > -1\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(e, item)\n\t\t\t\t{\n\t\t\t\t\tif (callback)\n\t\t\t\t\t{\n\t\t\t\t\t\tcallback(item.field || item.options.field);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t},\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: (BX.pos(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 (system && (basis === DelayInterval.BASIS_TYPE.CurrentDateTime || basis === DelayInterval.BASIS_TYPE.CurrentDateTimeLocal))\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\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\tfld['Id'].indexOf('DATE_MODIFY') < 0\n\t\t\t\t&& fld['Id'].indexOf('EVENT_DATE') < 0\n\t\t\t\t&& fld['Id'].indexOf('BIRTHDATE') < 0\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 workDayRadio = Dom.create(\"input\", {\n\t\t\tattrs: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tid: uid + \"wait_workday\",\n\t\t\t\tname: \"wait_workday\",\n\t\t\t\tvalue: '1',\n\t\t\t\tstyle: 'vertical-align: middle'\n\t\t\t},\n\t\t\tprops: {\n\t\t\t\tchecked: delay.waitWorkDay && isAvailable\n\t\t\t}\n\t\t});\n\n\t\tif (!isAvailable)\n\t\t{\n\t\t\tworkDayRadio.disabled = true;\n\t\t}\n\n\t\tconst workDayHelpNode = Dom.create('span', {\n\t\t\tattrs: {\n\t\t\t\tclassName: \"bizproc-automation-status-help bizproc-automation-status-help-right\",\n\t\t\t\t'data-hint': Loc.getMessage('BIZPROC_AUTOMATION_DELAY_WAIT_WORK_DAY_HELP')\n\t\t\t}\n\t\t});\n\n\t\tconst events = {};\n\n\t\tif (!isAvailable)\n\t\t{\n\t\t\tevents.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}\n\n\t\treturn Dom.create(\"div\", {\n\t\t\tattrs: { className: \"bizproc-automation-popup-select-item\" },\n\t\t\tchildren: [ Dom.create(\"div\", {\n\t\t\t\tattrs: { className: \"bizproc-automation-popup-settings-title\" },\n\t\t\t\tchildren: [\n\t\t\t\t\tworkDayRadio,\n\t\t\t\t\tDom.create(\"label\", {\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\tclassName: `bizproc-automation-popup-settings-lbl ${!isAvailable? 'bizproc-automation-robot-btn-set-locked' : ''}`,\n\t\t\t\t\t\t\tfor: uid + \"wait_workday\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttext: Loc.getMessage('BIZPROC_AUTOMATION_DELAY_WAIT_WORK_DAY_MSGVER_1')\n\t\t\t\t\t}),\n\t\t\t\t\tworkDayHelpNode\n\t\t\t\t]\n\t\t\t})],\n\t\t\tevents,\n\t\t});\n\t}\n\n\t#isWorkTimeAvailable(): boolean\n\t{\n\t\treturn getGlobalContext().get('IS_WORKTIME_AVAILABLE') ?? false;\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 } 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, Runtime } from \"main.core\";\nimport { BaseContext } from \"./base-context\";\nimport { Document, UserOptions, Tracker } from \"bizproc.automation\";\n\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}","import {Loc} from 'main.core';\nimport {Guide} from 'ui.tour';\n\nexport class BeginningGuide\n{\n\t#guide: Guide;\n\n\tconstructor(options)\n\t{\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: Loc.getMessage('BIZPROC_AUTOMATION_TOUR_GUIDE_BEGINNING_SUBTITLE'),\n\t\t\t\t\tarticle: '16547606',\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'),\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'),\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';\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 { 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';\nimport { Context } from './context/context';\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}\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}"],"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","ViewMode","mode","name","value","defaultValue","hasOwnProperty","getAll","includes","none","Trigger","setEventNamespace","draft","ConditionGroup","data","viewMode","clone","isPlainObject","Condition","edit","createNode","node","parentNode","replaceChild","getGlobalContext","canEdit","String","document","statusList","find","status","STATUS_ID","getStatusId","triggerName","code","getCode","trigger","availableTriggers","NAME","isString","rules","log","tracker","getTriggerLog","getId","condition","flag","userId","wrapperClass","isEdit","settingsBtn","copyBtn","Dom","create","attrs","className","text","Loc","getMessage","Event","bind","onCopyButtonClick","getLogStatus","TrackingStatus","COMPLETED","getPreviousStatusIdList","getName","containerClass","div","children","title","registerItem","deleteBtn","onDeleteButtonClick","appendChild","onSettingsButtonClick","button","HelpHint","showNoPermissionsHint","isManage","emit","event","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","undefined","unregisterObject","unregisterDest","proxy_context","stopCurrentDrag","itemWidth","offsetWidth","cloneNode","style","position","classList","width","body","x","y","left","top","destination","remove","type","getAttribute","querySelector","window","isCopy","ctrlKey","metaKey","copyTrigger","parent","statusId","thisColumn","insertBefore","moveTo","skipInsert","removeChild","APPLY_RULES","items","length","triggerData","RETURN","SETTINGS","Properties","EventEmitter","Helper","JSON","stringify","i","v","fields","field","Designer","dialog","robotSettingsDialog","robot","triggerSettingsDialog","_classStaticPrivateFieldSpecSet","TriggerManager","triggersContainerNode","_classPrivateMethodInitSpec","isNone","TRIGGERS","querySelectorAll","initTriggers","markModified","columnNode","addCustomEvent","onRestAppInstall","clean","subscribeTriggerEvents","insertTriggerNode","subscribe","openTriggerSettingsDialog","deleteTrigger","onSearch","manage","deleteButtons","hide","addClass","show","removeClass","callback","call","markDeleted","splice","unregisterItem","documentStatus","triggerNode","listNode","append","deleted","get","modified","context","getInstance","getTriggerSettingsDialog","changeTrigger","popup","close","formName","form","props","renderConditionSettings","iconHelp","events","click","getTriggerName","getAvailableTrigger","_classPrivateMethodGet","onCustomEvent","canSetExecuteBy","renderExecuteByControl","renderAllowBackwardsControl","setTriggerSettingsDialog","triggerManager","self","PopupWindow","generateUniqueId","titleBar","content","closeIcon","offsetLeft","offsetTop","closeByEsc","draggable","restrict","overlay","onPopupClose","destroySettingsDialogControls","destroy","buttons","PopupWindowButton","formData","ajax","prepareForm","setName","setConditionSettingsFromForm","setAllowBackwards","setExecuteBy","runAction","analyticsLabel","reInit","PopupWindowButtonLink","popupWindow","conditionGroup","getCondition","conditionSelector","ConditionGroupSelector","getFields","selector","Bizproc","FieldType","renderControl","getRawType","getResponsibleUserExpression","getExecuteBy","checked","isBackwardsAllowed","createTextNode","formFields","setCondition","createFromForm","installed","eventResult","redirect","setTimeout","method","dataType","url","ajaxUrl","ajax_action","document_signed","signedDocument","onsuccess","response","settingsDialogControls","controlNodes","control","role","UserSelector","decorateNode","UI","Hint","isFunction","result","exists","triggers","getListByDocumentStatus","getReturnProperties","ObjectId","Name","ObjectName","Expression","SystemExpression","propertyId","properties","getApplyRules","toRenderProperty","AllowSelection","getCategoryId","cmp","component","Options","Settings","Filter","check","templateManager","templates","template","robots","getProperty","OptionNameProperty","setApplyRules","Fields","fieldPrefix","Text","getRandom","hookLinkTextarea","placeholder","readonly","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","encode","onclick","item","autoHide","pos","angle","offset","zIndex","fieldListNode","ChooseFieldLabel","foundField","fld","Document","options","rawDocumentType","documentId","categoryId","findIndex","isStringFilled","documentFields","Runtime","getCurrentStatusId","index","slice","newStatusId","isArrayFilled","DelayInterval","params","BASIS_TYPE","CurrentDateTime","DELAY_TYPE","After","setType","setValue","setValueType","setBasis","setWorkTime","setWaitWorkDay","setInTime","valueType","basis","workTime","waitWorkDay","inTime","Before","In","parseInt","basisFields","workerExpression","CurrentDate","isSystemBasis","s","isNow","days","hours","minutes","fn","worker","emptyText","str","inTimeString","prefix","getFormattedPeriodLabel","fieldSuffix","label","labelIndex","labels","getPeriodLabels","CurrentDateTimeLocal","intervalString","toString","trimStart","h","d","substring","setTimeArgs","split","minute","pop","trim","hour","join","fnArgs","re","exec","found","period","element","bindToNode","showHint","hideHint","popupHint","bindElement","isSameNode","rawText","util","nl2br","lightShadow","darkMode","bindOptions","html","setAngle","showAngleHint","timeout","clearTimeout","createInstance","popupParameters","height","getPosition","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","entries","WAITING","entry","addEntry","id","datetime","workflowStatus","errors","note","notes","TriggerEntry","isTriggerEntry","TrackingEntryBuilder","workflowId","logEntry","Object","assign","isNumber","isKnownActivityType","isKnownWorkflowStatus","Tracker","addLogs","logEntryBuilder","rawEntry","setLogEntry","build","addTriggerEntry","addRobotEntry","robotEntry","isRobotRunning","isWorkflowCompleted","isCurrentStatus","isRobotRunningAtAnotherStatus","isRobotRunningAndCurrentWorkflowCompleted","documentSigned","DATA","LOG","Robot","isFrameMode","clonedRobot","robotData","generateName","Delay","getDelayInterval","other","CONDITION_TYPE","Mixed","getProperties","getRobotLog","DelayName","hasClass","isActive","setProperty","deleteButton","isSelected","selectNode","unselectNode","targetLabel","isView","viewData","responsibleLabel","labelText","getReturnFieldsDescription","getTitle","globalVariables","variable","globalConstants","constant","textContent","setAttribute","responsibleUrl","href","responsibleId","delayLabel","format","isExecuteAfterPrevious","delayNode","statusNode","subscribeOnce","isBindedToNode","delayNotes","getDelayNotes","AUTOCOMPLETED","getLogErrors","titleClassName","clipTitle","onTitleEditClick","lastChild","deleteRobot","openRobotSettingsDialog","DialogContext","copiedRobot","robotTitle","newTitle","Template","copyRobotTo","getNextRobot","e","preventDefault","nameNode","elements","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","Constant","Variable","Parameter","GlobalConstant","GlobalVariable","Activity","collectExpressions","conditions","collectParsedExpressions","systemExpressionRegExp","RegExp","SYSTEM_EXPRESSION_PATTERN","groups","parsedUsage","activityRegExp","collectUsages","objectsData","getConstants","getVariables","getParameters","getSerializedRobots","size","source","searchInSource","getRobotById","getReturnProperty","UserOptions","storedValue","userOptions","save","constants","variables","templateContainerNode","delayMinLimitM","CONSTANTS","PARAMETERS","VARIABLES","DOCUMENT_STATUS","markExternalModified","fromRaw","initRobots","initButtons","isExternalModified","ROBOTS","selectedRobots","serialized","ID","isNaN","createExternalLocker","getTemplateId","createConstantsEditButton","createParametersEditButton","createExternalEditTemplateButton","createManageModeButton","enableManageMode","disableManageMode","bizprocEditorUrl","anchor","onExternalEditTemplateButtonClick","target","canManage","manageButton","cursor","onManageModeButtonClick","manageButtonNode","constantsEditorUrl","parametersEditorUrl","onUnsetExternalModifiedClick","onExternalModifiedSearch","InfoHelper","templateId","openBizprocEditor","intoRaw","Title","parentRobot","isEqual","robotNode","beforeNode","saveCallback","getRobotSettingsDialog","changeRobot","setRobotSettingsDialog","renderDelaySettings","hasBrokenLink","renderBrokenLinkAlert","document_status","robot_json","toJsonString","form_name","dialogRows","showRobotSettingsPopup","popupMinWidth","popupWidth","initRobotSettingsControls","hasTitle","me","resizable","minWidth","minHeight","destroyRobotSettingsControls","onPopupResize","onResizeRobotSettings","onPopupResizeEnd","getWidth","isNewRobot","saveRobotSettings","delegate","buttonNode","robotSettingsControls","initRobotSettingsControl","controlNode","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","onBeforeSave","idSalt","delayTypeNode","delayValueNode","delayValueTypeNode","delayBasisNode","delayWorkTimeNode","delayWaitWorkDayNode","delayInTimeNode","delayIntervalLabelNode","docFields","minLimitM","delayIntervalSelector","DelayIntervalSelector","labelNode","onchange","useAfterBasis","showWaitWorkDay","executeAfterPreviousBlock","hasTemplate","executeAfterPreviousCheckbox","setDelayInterval","setExecuteAfterPrevious","onOpenFieldMenu","message","display","btnNode","onBeforeSaveRobotSettings","form_data_json","form_data","SUCCESS","updateData","setDelaySettingsFromForm","ERRORS","externalModified","keys","generatePropertyId","getConstant","Description","param","parameter","getParameter","existsList","robotUsages","usage","eventName","listener","unsubscribe","availableRobots","dstTemplate","copyTo","additionalFields","flat","ask","tabs","sort","skipRobot","isMixedCondition","isBoolean","robotMenuItems","customData","addGroup","skipId","templateRobot","hasReturnFields","group","parentGroup","setObject","setField","setOperator","operator","Operator","EQUAL","NOT_EQUAL","Field","addItem","clonedGroup","joiner","clonedCondition","itemsArray","activityNames","Branch1","Branch2","valueIndex","BETWEEN","JOINER","And","Or","ConditionSelector","conditionObjectNode","objectNode","conditionFieldNode","fieldNode","conditionOperatorNode","operatorNode","valueNode","conditionValueNode","conditionValueNode2","value2","conditionJoinerNode","joinerNode","setLabelText","bindLabelNode","removeButtonNode","removeCondition","joinerButtonNode","changeJoiner","getField","valueLabel","Tag","render","getOperatorLabel","onLabelClick","showPopup","filterFields","objectSelect","fieldSelect","fieldSelectLabel","onFieldSelectorClick","selectedField","valueInput","valueWrapper","operatorSelect","createOperatorNode","operatorWrapper","onFieldChange","backgroundColor","firstChild","valueInputs","input","updateValueNode","fieldDialog","globalContext","InlineSelectorCondition","fireEvent","openMenu","isDomNode","conditionWrapper","getOperators","onOperatorChange","tpl","getTemplate","getGVariable","foundRobot","fieldType","multiple","allLabels","getAllLabels","list","NOT_EMPTY","EMPTY","CONTAIN","NOT_CONTAIN","IN","NOT_IN","GREATER_THEN","GREATER_THEN_OR_EQUAL","LESS_THEN","LESS_THEN_OR_EQUAL","filtered","docField","docType","Multiple","valueNodes","renderControlPublic","dataset","operatorList","operatorId","btn","formatValuePrintable","valueNode1","createValueNode","valueNode2","conditionNodes","getItems","Manager","selectorProps","FileSelector","SELECTOR_ROLE_INLINE","InlineSelector","SELECTOR_ROLE_INLINE_HTML","InlineSelectorHtml","SELECTOR_ROLE_TIME","TimeSelector","SaveStateCheckbox","InlineTimeSelector","isElementNode","time","getFormat","formatId","Date","convertBitrixFormat","dateFormat","dateTimeFormat","date","setHours","DateTimeFormat","getTime","Menu","maxHeight","groupId","hasGroup","targetInput","menuButton","parseTargetProperties","replaceOnWrite","renderWith","propertyType","skipPropertiesSwitcher","openPropertiesSwitcherMenu","fillGroups","onMenuOpen","Dialog","dropdownMode","enableSearch","injectDialogMenuTitles","showAvatars","getCustomData","compactView","fillFieldsGroups","fillFileGroup","searchable","groupKey","groupName","names","shift","addGroupItem","fileFields","disabled","currentItem","injectDialogMenuSupertitles","child","supertitle","inputType","tagName","expressionOption","selected","hiddenInput","getElementById","selectionEnd","beforePart","substr","middlePart","afterPart","printablePrefix","custom","printableName","printableField","serverField","responsibleField","childGroup","entityId","toExpression","fromString","timeSelector","keyCode","altKey","shiftKey","exp","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","additionalUserFields","userSelector","TYPE","None","menu","config","File","required","valueInputName","typeInputName","useDisk","labelFile","labelDisk","fileItem","setValues","ids","Disk","getValues","childNodes","fileRadio","fileTypeOptions","diskFileRadio","diskUploader","layout","addItems","addButtonNode","Automation","DiskUploader","msg","setMode","newType","SIZE","VIEW_URL","itemNode","itemField","closeWnd","setTime","constructor","showClock","CClockSelector","start_time","Show","timeParts","part","timeFormat","prepareBasisFields","showDelayIntervalPopup","uid","radioNow","labelNow","labelNowHelpNode","createAfterControlNode","createBeforeControlNode","createInControlNode","workTimeRadio","workTimeHelpNode","saveFormData","FormData","fieldsMenu","valueTypeMenu","setNow","Notification","Center","notify","radioAfter","labelAfter","createValueTypeSelector","basisField","getBasisField","basisValue","beforeBasisValueNode","beforeBasisNode","onBasisClick","afterHelpNode","radioBefore","labelBefore","beforeHelpNode","radioIn","labelIn","inBasisValueNode","inBasisNode","helpNode","labelTexts","onValueTypeSelectorClick","valueId","delayType","delimiter","system","isAvailable","workDayRadio","workDayHelpNode","BaseContext","isValueChanged","Context","BeginningGuide","Guide","steps","article","bottom","onEvents","getPopup","setAutoHide","showNextStep","AutomationGuide","isShownRobotGuide","isShownTriggerGuide","guide","getCurrentStep","contains","subtitles","subtitle","contextInstance","Error","tryGetGlobalContext","setGlobalContext"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings