Your IP : 172.70.80.239


Current Path : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/timeline/dist/
Upload File :
Current File : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/timeline/dist/timeline.bundle.js.map

{"version":3,"file":"timeline.bundle.js","sources":["../src/item.js","../src/history.js","../src/stagechange.js","../src/fieldschange.js","../src/editor.js","../src/commenteditor.js","../src/comment.js","../src/animation/animation.js","../src/animation/drop.js","../src/animation/pin.js","../src/animation/show.js","../src/animation/taskcomplete.js","../src/animation/hide.js","../src/animation/queue.js","../src/stream.js","../src/timeline.js"],"sourcesContent":["import {Text, Tag, Type, Event, Dom} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\nimport {MenuManager, Menu} from 'main.popup';\n\nimport 'main.date';\nimport {Loader} from \"main.loader\";\n\n/**\n * @mixes EventEmitter\n * @memberOf BX.UI.Timeline\n */\nexport class Item\n{\n\tcompletedData: {};\n\tisPinned: boolean;\n\tisProgress: boolean = false;\n\n\tconstructor(params: {\n\t\tid: number|string,\n\t\taction: ?string,\n\t\titemClassName: ?string,\n\t\ttitle: ?string,\n\t\tdescription: ?string,\n\t\thtmlDescription: ?string,\n\t\ttextDescription: ?string,\n\t\tcreatedTimestamp: ?number,\n\t\tuserId: number,\n\t\tisFixed: boolean,\n\t\teventIds: Set,\n\t\tdata: ?{\n\t\t\titem: ?{name: ?string},\n\t\t\tstageFrom: ?{id: ?number, name: ?string},\n\t\t\tstageTo: ?{id: ?number, name: ?string},\n\t\t\ttask: ?{id: ?number, title: ?string, description: ?string},\n\t\t\tfields: ?Array,\n\t\t\tscope: ?string,\n\t\t},\n\t\tevents: ?{\n\t\t\tonPinClick: ?Function,\n\t\t\tonDelete: ?Function,\n\t\t}\n\t})\n\t{\n\t\tEventEmitter.makeObservable(this, 'UI.Timeline.Item');\n\t\tthis.id = params.id;\n\t\tthis.createdTimestamp = null;\n\t\tthis.action = '';\n\t\tthis.title = '';\n\t\tthis.description = '';\n\t\tthis.htmlDescription = '';\n\t\tthis.textDescription = '';\n\t\tthis.userId = params.userId;\n\t\tthis.isFixed = (params.isFixed === true);\n\t\tthis.data = {};\n\t\tthis.eventIds = new Set();\n\t\tif(Type.isPlainObject(params))\n\t\t{\n\t\t\tif(Type.isSet(params.eventIds))\n\t\t\t{\n\t\t\t\tthis.eventIds = params.eventIds;\n\t\t\t}\n\t\t\tif(Type.isString(params.action))\n\t\t\t{\n\t\t\t\tthis.action = params.action;\n\t\t\t}\n\t\t\tif(Type.isString(params.title))\n\t\t\t{\n\t\t\t\tthis.title = params.title;\n\t\t\t}\n\t\t\tif(Type.isString(params.description))\n\t\t\t{\n\t\t\t\tthis.description = params.description;\n\t\t\t}\n\t\t\tif(Type.isString(params.htmlDescription))\n\t\t\t{\n\t\t\t\tthis.htmlDescription = params.htmlDescription;\n\t\t\t}\n\t\t\tif(Type.isString(params.textDescription))\n\t\t\t{\n\t\t\t\tthis.textDescription = params.textDescription;\n\t\t\t}\n\t\t\tif(Type.isNumber(params.createdTimestamp))\n\t\t\t{\n\t\t\t\tthis.createdTimestamp = params.createdTimestamp;\n\t\t\t}\n\t\t\tif(Type.isPlainObject(params.data))\n\t\t\t{\n\t\t\t\tthis.data = params.data;\n\t\t\t}\n\t\t}\n\t\tthis.layout = {};\n\t\tthis.timeFormat = 'H:M';\n\t\tthis.nameFormat = '';\n\t\tthis.users = new Map();\n\t\tthis.isLast = false;\n\t\tthis.events = params.events;\n\t\tthis.isPinned = false;\n\t}\n\n\tafterRender()\n\t{\n\t\tEvent.bind(this.renderPin(), 'click', this.onPinClick.bind(this));\n\t\tthis.bindActionsButtonClick();\n\t}\n\n\tbindActionsButtonClick()\n\t{\n\t\tconst button = this.getActionsButton();\n\t\tif(button)\n\t\t{\n\t\t\tEvent.bind(button, 'click', this.onActionsButtonClick.bind(this));\n\t\t}\n\t}\n\n\tsetIsLast(isLast: boolean): Item\n\t{\n\t\tthis.isLast = isLast;\n\t\tif(this.isRendered())\n\t\t{\n\t\t\tif(this.isLast)\n\t\t\t{\n\t\t\t\tthis.getContainer().classList.add('ui-item-detail-stream-section-last');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.getContainer().classList.remove('ui-item-detail-stream-section-last');\n\t\t\t}\n\t\t}\n\t}\n\n\tsetUserData(users: ?Map): Item\n\t{\n\t\tif(users)\n\t\t{\n\t\t\tthis.users = users;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsetTimeFormat(timeFormat: string): Item\n\t{\n\t\tif(Type.isString(timeFormat))\n\t\t{\n\t\t\tthis.timeFormat = timeFormat;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsetNameFormat(nameFormat: string): Item\n\t{\n\t\tif(Type.isString(nameFormat))\n\t\t{\n\t\t\tthis.nameFormat = nameFormat;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetContainer(): ?Element\n\t{\n\t\treturn this.layout.container;\n\t}\n\n\tisRendered(): boolean\n\t{\n\t\treturn Type.isDomNode(this.getContainer());\n\t}\n\n\tgetCreatedTime(): ?Date\n\t{\n\t\tif(this.createdTimestamp > 0)\n\t\t{\n\t\t\tthis.createdTimestamp = Text.toInteger(this.createdTimestamp);\n\t\t\treturn new Date(this.createdTimestamp);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tformatTime(time): string\n\t{\n\t\treturn BX.date.format(this.timeFormat, time);\n\t}\n\n\tgetId(): string|number\n\t{\n\t\treturn this.id;\n\t}\n\n\tgetTitle(): ?string\n\t{\n\t\treturn this.title;\n\t}\n\n\tgetUserId(): number\n\t{\n\t\treturn Text.toInteger(this.userId);\n\t}\n\n\tgetScope(): ?string\n\t{\n\t\tif(Type.isString(this.data.scope))\n\t\t{\n\t\t\treturn this.data.scope;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tisScopeManual(): boolean\n\t{\n\t\tconst scope = this.getScope();\n\t\treturn (!scope || scope === 'manual');\n\t}\n\n\tisScopeAutomation(): boolean\n\t{\n\t\treturn (this.getScope() === 'automation');\n\t}\n\n\tisScopeTask(): boolean\n\t{\n\t\treturn (this.getScope() === 'task');\n\t}\n\n\tisScopeRest(): boolean\n\t{\n\t\treturn (this.getScope() === 'rest');\n\t}\n\n\trender(): Element\n\t{\n\t\tthis.layout.container = this.renderContainer();\n\n\t\tthis.updateLayout();\n\n\t\treturn this.layout.container;\n\t}\n\n\tupdateLayout()\n\t{\n\t\tthis.clearLayout(true);\n\n\t\tthis.layout.container.appendChild(this.renderIcon());\n\t\tif(this.hasMenu())\n\t\t{\n\t\t\tthis.layout.container.appendChild(this.renderActionsButton());\n\t\t}\n\t\tthis.layout.container.appendChild((this.renderPin()));\n\n\t\tlet content = this.getContent();\n\t\tif(!content)\n\t\t{\n\t\t\tcontent = this.renderContent();\n\t\t}\n\t\tthis.layout.container.appendChild(content);\n\n\t\tthis.afterRender();\n\t}\n\n\trenderContainer(): Element\n\t{\n\t\treturn Tag.render`<div class=\"ui-item-detail-stream-section ${(this.isLast ? 'ui-item-detail-stream-section-last' : '')}\"></div>`;\n\t}\n\n\trenderPin(): Element\n\t{\n\t\tif(!this.layout.pin)\n\t\t{\n\t\t\tthis.layout.pin = Tag.render`<span class=\"ui-item-detail-stream-section-top-fixed-btn\"></span>`;\n\t\t}\n\n\t\tif(this.isFixed)\n\t\t{\n\t\t\tthis.layout.pin.classList.add('ui-item-detail-stream-section-top-fixed-btn-active');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.layout.pin.classList.remove('ui-item-detail-stream-section-top-fixed-btn-active');\n\t\t}\n\n\t\treturn this.layout.pin;\n\t}\n\n\trenderContent(): Element\n\t{\n\t\tthis.layout.content = Tag.render`<div class=\"ui-item-detail-stream-section-content\">${this.renderDescription()}</div>`;\n\n\t\treturn this.getContent();\n\t}\n\n\tgetContent(): ?Element\n\t{\n\t\treturn this.layout.content;\n\t}\n\n\trenderDescription(): Element\n\t{\n\t\tthis.layout.description = Tag.render`<div class=\"ui-item-detail-stream-content-event\"></div>`;\n\n\t\tlet header = this.renderHeader();\n\t\tif(header)\n\t\t{\n\t\t\tthis.layout.description.appendChild(header);\n\t\t}\n\n\t\tthis.layout.description.appendChild(this.renderMain());\n\n\t\treturn this.layout.description;\n\t}\n\n\trenderHeader(): ?Element\n\t{\n\t\treturn null;\n\t}\n\n\trenderHeaderUser(userId: ?number, size: ?number = 21): Element\n\t{\n\t\tuserId = Text.toInteger(userId);\n\t\tlet userData = {\n\t\t\tlink: 'javascript: void(0)',\n\t\t\tfullName: '',\n\t\t\tphoto: null,\n\t\t};\n\t\tif(userId > 0)\n\t\t{\n\t\t\tuserData = this.users.get(userId);\n\t\t}\n\t\tif(!userData)\n\t\t{\n\t\t\treturn Tag.render`<a></a>`;\n\t\t}\n\n\t\tconst safeFullName = Tag.safe`${userData.fullName}`;\n\t\treturn Tag.render`<a class=\"ui-item-detail-stream-content-employee\" href=\"${userData.link}\" target=\"_blank\" title=\"${safeFullName}\" ${userData.photo ? 'style=\"background-image: url(\\'' + userData.photo + '\\'); background-size: 100%;\"' : ''}></a>`;\n\t}\n\n\trenderMain(): Element\n\t{\n\t\tthis.layout.main = Tag.render`<div class=\"ui-item-detail-stream-content-detail\">${this.description}</div>`;\n\n\t\treturn this.getMain();\n\t}\n\n\tgetMain(): ?Element\n\t{\n\t\treturn this.layout.main;\n\t}\n\n\trenderIcon(): Element\n\t{\n\t\tthis.layout.icon = Tag.render`<div class=\"ui-item-detail-stream-section-icon\"></div>`;\n\n\t\treturn this.layout.icon;\n\t}\n\n\tgetItem(): ?{name: ?string}\n\t{\n\t\tif(Type.isPlainObject(this.data.item))\n\t\t{\n\t\t\treturn this.data.item;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tonPinClick()\n\t{\n\t\tthis.isFixed = !this.isFixed;\n\t\tthis.renderPin();\n\t\tif(Type.isFunction(this.events.onPinClick))\n\t\t{\n\t\t\tthis.events.onPinClick(this);\n\t\t}\n\t\tthis.emit('onPinClick');\n\t}\n\n\tclearLayout(isSkipContainer = false): Item\n\t{\n\t\tconst container = this.getContainer();\n\t\tObject.keys(this.layout).forEach((name: string) =>\n\t\t{\n\t\t\tconst node = this.layout[name];\n\t\t\tif(!isSkipContainer || container !== node)\n\t\t\t{\n\t\t\t\tDom.remove(node);\n\t\t\t\tdelete this.layout[name];\n\t\t\t}\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tgetDataForUpdate(): {}\n\t{\n\t\treturn {\n\t\t\tdescription: this.description,\n\t\t\thtmlDescription: this.htmlDescription,\n\t\t\tdata: this.data,\n\t\t\tuserId: this.userId,\n\t\t};\n\t}\n\n\tupdateData(params: {\n\t\tdescription: ?string,\n\t\thtmlDescription: ?string,\n\t\tdata: ?{},\n\t\tuserId: ?number,\n\t}): Item\n\t{\n\t\tif(Type.isPlainObject(params))\n\t\t{\n\t\t\tif(Type.isString(params.description))\n\t\t\t{\n\t\t\t\tthis.description = params.description;\n\t\t\t}\n\t\t\tif(Type.isString(params.htmlDescription))\n\t\t\t{\n\t\t\t\tthis.htmlDescription = params.htmlDescription;\n\t\t\t}\n\t\t\tif(Type.isPlainObject(params.data))\n\t\t\t{\n\t\t\t\tthis.data = params.data;\n\t\t\t}\n\t\t\tif(params.userId > 0)\n\t\t\t{\n\t\t\t\tthis.userId = params.userId;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tupdate(params): Item\n\t{\n\t\tthis.updateData(params).updateLayout();\n\n\t\treturn this;\n\t}\n\n\tonError(params: {message: string})\n\t{\n\t\tif(Type.isFunction(this.events.onError))\n\t\t{\n\t\t\tthis.events.onError(params);\n\t\t}\n\t\tthis.emit('error', params);\n\t}\n\n\tonDelete()\n\t{\n\t\tif(Type.isFunction(this.events.onDelete))\n\t\t{\n\t\t\tthis.events.onDelete(this);\n\t\t}\n\t\tthis.emit('onDeleteComplete');\n\t}\n\n\thasMenu(): boolean\n\t{\n\t\treturn this.hasActions();\n\t}\n\n\thasActions(): boolean\n\t{\n\t\treturn (this.getActions().length > 0);\n\t}\n\n\tgetActions(): Array\n\t{\n\t\treturn [];\n\t}\n\n\trenderActionsButton(): Element\n\t{\n\t\tthis.layout.contextMenuButton = Tag.render`<div class=\"ui-timeline-item-context-menu\"></div>`;\n\n\t\treturn this.getActionsButton()\n\t}\n\n\tgetActionsButton(): ?Element\n\t{\n\t\treturn this.layout.contextMenuButton;\n\t}\n\n\tgetActionsMenuId(): string\n\t{\n\t\treturn 'ui-timeline-item-context-menu-' + this.getId();\n\t}\n\n\tonActionsButtonClick()\n\t{\n\t\tthis.getActionsMenu().toggle();\n\t}\n\n\tgetActionsMenu(): Menu\n\t{\n\t\treturn MenuManager.create({\n\t\t\tid: this.getActionsMenuId(),\n\t\t\tbindElement: this.getActionsButton(),\n\t\t\titems: this.getActions(),\n\t\t\toffsetTop: 0,\n\t\t\toffsetLeft: 16,\n\t\t\tangle: { position: \"top\", offset: 0 },\n\t\t\tevents:\n\t\t\t{\n\t\t\t\tonPopupShow: this.onContextMenuShow.bind(this),\n\t\t\t\tonPopupClose: this.onContextMenuClose.bind(this),\n\t\t\t},\n\t\t});\n\t}\n\n\tonContextMenuShow()\n\t{\n\t\tthis.getActionsButton().classList.add('active');\n\t}\n\n\tonContextMenuClose()\n\t{\n\t\tthis.getActionsButton().classList.remove('active');\n\t\tthis.getActionsMenu().destroy();\n\t}\n\n\tstartProgress()\n\t{\n\t\tthis.isProgress = true;\n\t\tthis.getLoader().show();\n\t}\n\n\tstopProgress()\n\t{\n\t\tthis.isProgress = false;\n\t\tif(this.getLoader().isShown())\n\t\t{\n\t\t\tthis.getLoader().hide();\n\t\t}\n\t}\n\n\tgetLoader(): Loader\n\t{\n\t\tif(!this.loader)\n\t\t{\n\t\t\tthis.loader = new Loader({\n\t\t\t\ttarget: this.getContainer(),\n\t\t\t});\n\t\t}\n\n\t\treturn this.loader;\n\t}\n}","import {Type, Tag, Loc, Text} from 'main.core';\nimport {Item} from './item';\n\nexport class History extends Item\n{\n\trenderContainer(): Element\n\t{\n\t\tconst container = super.renderContainer();\n\t\tif(this.isScopeAutomation())\n\t\t{\n\t\t\tcontainer.classList.add('ui-item-detail-stream-section-icon-robot');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcontainer.classList.add('ui-item-detail-stream-section-info');\n\t\t}\n\n\t\treturn container;\n\t}\n\n\trenderHeader(): ?Element\n\t{\n\t\treturn Tag.render`<div class=\"ui-item-detail-stream-content-header\">\n\t\t\t<div class=\"ui-item-detail-stream-content-title\">\n\t\t\t\t<span class=\"ui-item-detail-stream-content-title-text\">${Text.encode(this.getTitle())}</span>\n\t\t\t\t<span class=\"ui-item-detail-stream-content-title-time\">${this.formatTime(this.getCreatedTime())}</span>\n\t\t\t</div>\n\t\t\t${this.renderHeaderUser(this.getUserId())}\n\t\t</div>`\n\t}\n\n\trenderStageChangeTitle(): Element\n\t{\n\t\treturn Tag.render`<div class=\"ui-item-detail-stream-content-title\">\n\t\t\t<span class=\"ui-item-detail-stream-content-title-text\">${Loc.getMessage('UI_TIMELINE_STAGE_CHANGE_SUBTITLE')}</span>\n\t\t</div>`;\n\t}\n\n\trenderStageChange(): ?Element\n\t{\n\t\tconst stageFrom = this.getStageFrom();\n\t\tconst stageTo = this.getStageTo();\n\n\t\tif(stageFrom && stageTo && stageFrom.id !== stageTo.id)\n\t\t{\n\t\t\treturn Tag.render`<div class=\"ui-item-detail-stream-content-detail-info\">\n\t\t\t\t<span class=\"ui-item-detail-stream-content-detail-info-status\">${Text.encode(stageFrom.name)}</span>\n\t\t\t\t<span class=\"ui-item-detail-stream-content-detail-info-separator\"></span>\n\t\t\t\t<span class=\"ui-item-detail-stream-content-detail-info-status\">${Text.encode(stageTo.name)}</span>\n\t\t\t</div>`;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tgetStageFrom(): ?{id: ?number, name: ?string}\n\t{\n\t\tif(Type.isPlainObject(this.data.stageFrom))\n\t\t{\n\t\t\treturn this.data.stageFrom;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tgetStageTo(): ?{id: ?number, name: ?string}\n\t{\n\t\tif(Type.isPlainObject(this.data.stageTo))\n\t\t{\n\t\t\treturn this.data.stageTo;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tgetFields(): ?Array\n\t{\n\t\tif(Type.isArray(this.data.fields))\n\t\t{\n\t\t\treturn this.data.fields;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\trenderFieldsChange(): ?Element\n\t{\n\t\tconst fields = this.getFields();\n\t\tif(fields)\n\t\t{\n\t\t\tconst list = [];\n\t\t\tfields.forEach((field) =>\n\t\t\t{\n\t\t\t\tlist.push(Tag.render`<div class=\"ui-item-detail-stream-content-detail-field\">${Text.encode(field.title)}</div>`);\n\t\t\t});\n\n\t\t\treturn Tag.render`<div class=\"ui-item-detail-stream-content-detail-info ui-item-detail-stream-content-detail-info-break\">\n\t\t\t\t${list}\n\t\t\t</div>`;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\trenderFieldsChangeTitle(): Element\n\t{\n\t\treturn Tag.render`<div class=\"ui-item-detail-stream-content-title\">\n\t\t\t<span class=\"ui-item-detail-stream-content-title-text\">${Loc.getMessage('UI_TIMELINE_FIELDS_CHANGE_SUBTITLE')}</span>\n\t\t</div>`;\n\t}\n}","import {Tag} from 'main.core';\nimport {History} from './history';\n\nexport class StageChange extends History\n{\n\trenderMain(): Element\n\t{\n\t\tlet stageChange = this.renderStageChange();\n\t\tif(!stageChange)\n\t\t{\n\t\t\tstageChange = '';\n\t\t}\n\n\t\tlet fieldsChange = this.renderFieldsChange();\n\t\tif(!fieldsChange)\n\t\t{\n\t\t\tfieldsChange = '';\n\t\t}\n\n\t\treturn Tag.render`<div class=\"ui-item-detail-stream-content-detail\">\n\t\t\t${stageChange}\n\t\t\t${fieldsChange}\n\t\t</div>`;\n\t}\n}","import {Tag} from 'main.core';\nimport {History} from './history';\n\nexport class FieldsChange extends History\n{\n\trenderMain(): Element\n\t{\n\t\tlet fieldsChange = this.renderFieldsChange();\n\t\tif(!fieldsChange)\n\t\t{\n\t\t\tfieldsChange = '';\n\t\t}\n\t\treturn Tag.render`<div class=\"ui-item-detail-stream-content-detail\">\n\t\t\t${fieldsChange}\n\t\t</div>`;\n\t}\n}","import {Dom, Text, Type} from 'main.core';\nimport {Loader} from 'main.loader';\nimport {EventEmitter} from 'main.core.events';\n\n/**\n * @abstract\n * @mixes EventEmitter\n * @memberOf BX.UI.Timeline\n */\nexport class Editor\n{\n\tid: string;\n\tisProgress = false;\n\tloader;\n\n\tconstructor(params: {\n\t\tid: string,\n\t})\n\t{\n\t\tif(Type.isString(params.id) && params.id.length > 0)\n\t\t{\n\t\t\tthis.id = params.id;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.id = Text.getRandom();\n\t\t}\n\t\tthis.layout = {};\n\n\t\tEventEmitter.makeObservable(this, 'BX.UI.Timeline.Editor');\n\t}\n\n\tgetId(): string\n\t{\n\t\treturn this.id;\n\t}\n\n\tgetTitle(): string\n\t{\n\t}\n\n\tgetContainer(): ?Element\n\t{\n\t\treturn this.layout.container;\n\t}\n\n\trender(): Element\n\t{\n\t\tthrow new Error('This method should be overridden');\n\t}\n\n\tclearLayout(isSkipContainer: boolean = false): Editor\n\t{\n\t\tconst container = this.getContainer();\n\t\tObject.keys(this.layout).forEach((name: string) =>\n\t\t{\n\t\t\tconst node = this.layout[name];\n\t\t\tif(!isSkipContainer || container !== node)\n\t\t\t{\n\t\t\t\tDom.clean(node);\n\t\t\t\tdelete this.layout[name];\n\t\t\t}\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tstartProgress()\n\t{\n\t\tthis.isProgress = true;\n\t\tthis.getLoader().show();\n\t}\n\n\tstopProgress()\n\t{\n\t\tthis.isProgress = false;\n\t\tif(this.getLoader().isShown())\n\t\t{\n\t\t\tthis.getLoader().hide();\n\t\t}\n\t}\n\n\tgetLoader(): Loader\n\t{\n\t\tif(!this.loader)\n\t\t{\n\t\t\tthis.loader = new Loader({\n\t\t\t\ttarget: this.getContainer(),\n\t\t\t});\n\t\t}\n\n\t\treturn this.loader;\n\t}\n\n\tisRendered(): boolean\n\t{\n\t\treturn Type.isDomNode(this.getContainer());\n\t}\n}","import {Type, Tag, Loc, Runtime, Dom} from 'main.core';\nimport {EventEmitter, BaseEvent} from 'main.core.events';\nimport {Popup} from 'main.popup';\n\nimport {Editor} from \"./editor\";\n\n/**\n * @memberOf BX.UI.Timeline\n * @mixes EventEmitter\n */\nexport class CommentEditor extends Editor\n{\n\tpostForm: ?LHEPostForm;\n\tvisualEditor: ?BXHtmlEditor;\n\tcommentId = 0;\n\teditorContent = null;\n\n\tconstructor(params: {\n\t\tid: string,\n\t\tcommentId: ?number,\n\t})\n\t{\n\t\tsuper(params);\n\t\tif(Type.isNumber(params.commentId))\n\t\t{\n\t\t\tthis.commentId = params.commentId;\n\t\t}\n\t\tthis.setEventNamespace('BX.UI.Timeline.CommentEditor');\n\t}\n\n\tgetTitle(): string\n\t{\n\t\treturn Loc.getMessage('UI_TIMELINE_EDITOR_COMMENT');\n\t}\n\n\tgetVisualEditorName(): string\n\t{\n\t\treturn 'UiTimelineCommentVisualEditor' + this.getId().replace('- ', '');\n\t}\n\n\tgetTextarea(): ?HTMLTextAreaElement\n\t{\n\t\treturn this.layout.textarea;\n\t}\n\n\trenderTextarea(): HTMLTextAreaElement\n\t{\n\t\tthis.layout.textarea = Tag.render`<textarea onfocus=\"${this.onFocus.bind(this)}\" rows=\"1\" class=\"ui-item-detail-stream-section-new-comment-textarea\" placeholder=\"${Loc.getMessage('UI_TIMELINE_EDITOR_COMMENT_TEXTAREA')}\"></textarea>`;\n\n\t\treturn this.getTextarea();\n\t}\n\n\tgetVisualEditorContainer(): ?Element\n\t{\n\t\treturn this.layout.visualEditorContainer;\n\t}\n\n\trenderVisualEditorContainer(): Element\n\t{\n\t\tthis.layout.visualEditorContainer = Tag.render`<div class=\"ui-timeline-comment-visual-editor\"></div>`;\n\n\t\treturn this.getVisualEditorContainer();\n\t}\n\n\tgetButtonsContainer(): ?Element\n\t{\n\t\treturn this.layout.buttonsContainer;\n\t}\n\n\trenderButtons(): Element\n\t{\n\t\tthis.layout.buttonsContainer = Tag.render`<div class=\"ui-item-detail-stream-section-new-comment-btn-container\">\n\t\t\t${this.renderSaveButton()}\n\t\t\t${this.renderCancelButton()}\n\t\t</div>`;\n\n\t\treturn this.getButtonsContainer();\n\t}\n\n\tgetSaveButton(): ?Element\n\t{\n\t\treturn this.layout.saveButton;\n\t}\n\n\trenderSaveButton(): Element\n\t{\n\t\tthis.layout.saveButton = Tag.render`<button onclick=\"${this.save.bind(this)}\" class=\"ui-btn ui-btn-xs ui-btn-primary\">${Loc.getMessage('UI_TIMELINE_EDITOR_COMMENT_SEND')}</button>`;\n\n\t\treturn this.getSaveButton();\n\t}\n\n\tgetCancelButton(): ?Element\n\t{\n\t\treturn this.layout.cancelButton;\n\t}\n\n\trenderCancelButton(): Element\n\t{\n\t\tthis.layout.cancelButton = Tag.render`<span onclick=\"${this.cancel.bind(this)}\" class=\"ui-btn ui-btn-xs ui-btn-link\">${Loc.getMessage('UI_TIMELINE_EDITOR_COMMENT_CANCEL')}</span>`;\n\n\t\treturn this.getCancelButton();\n\t}\n\n\trender(): Element\n\t{\n\t\tthis.layout.container = Tag.render`<div class=\"ui-timeline-comment-editor\">\n\t\t\t\t${this.renderTextarea()}\n\t\t\t\t${this.renderButtons()}\n\t\t\t\t${this.renderVisualEditorContainer()}\n\t\t\t</div>`;\n\n\t\treturn this.getContainer();\n\t}\n\n\tonFocus()\n\t{\n\t\tconst container = this.getContainer();\n\t\tif(container)\n\t\t{\n\t\t\tcontainer.classList.add('focus');\n\t\t}\n\n\t\tthis.showVisualEditor();\n\t}\n\n\tshowVisualEditor()\n\t{\n\t\tif(!this.getVisualEditorContainer())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif(this.postForm && this.visualEditor)\n\t\t{\n\t\t\tthis.postForm.eventNode.style.display = 'block';\n\t\t\tthis.visualEditor.Focus();\n\t\t}\n\t\telse if(!this.isProgress)\n\t\t{\n\t\t\tthis.loadVisualEditor().then(() =>\n\t\t\t{\n\t\t\t\tEventEmitter.emit(this.postForm.eventNode, 'OnShowLHE', [true]);\n\t\t\t\t//todo there should be some other way\n\t\t\t\tsetTimeout(() =>\n\t\t\t\t{\n\t\t\t\t\tthis.editorContent = this.postForm.oEditor.GetContent();\n\t\t\t\t}, 300);\n\t\t\t}).catch(() =>\n\t\t\t{\n\t\t\t\tthis.cancel();\n\t\t\t\tthis.emit('error', {message: 'Could not load visual editor. Please try again later'});\n\t\t\t});\n\t\t}\n\t}\n\n\tloadVisualEditor(): Promise\n\t{\n\t\treturn new Promise((resolve, reject) =>\n\t\t{\n\t\t\tif(this.isProgress)\n\t\t\t{\n\t\t\t\treject();\n\t\t\t}\n\t\t\tthis.showEditorLoader();\n\n\t\t\tconst event = new BaseEvent({\n\t\t\t\tdata: {\n\t\t\t\t\tname: this.getVisualEditorName(),\n\t\t\t\t\tcommentId: this.commentId,\n\t\t\t\t},\n\t\t\t});\n\t\t\tthis.emitAsync('onLoadVisualEditor', event).then(() => {\n\t\t\t\tconst html = event.getData().html;\n\t\t\t\tif(Type.isString(html))\n\t\t\t\t{\n\t\t\t\t\tRuntime.html(this.getVisualEditorContainer(), html).then(() => {\n\t\t\t\t\t\tthis.hideEditorLoader();\n\t\t\t\t\t\tif(LHEPostForm && BXHtmlEditor)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.postForm = LHEPostForm.getHandler(this.getVisualEditorName());\n\t\t\t\t\t\t\tthis.visualEditor = BXHtmlEditor.Get(this.getVisualEditorName());\n\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treject();\n\t\t\t\t\t\t}\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\treject();\n\t\t\t\t}\n\t\t\t}).catch(() =>\n\t\t\t{\n\t\t\t\treject();\n\t\t\t});\n\t\t});\n\t}\n\n\tshowEditorLoader()\n\t{\n\t\tthis.editorLoader = Tag.render`<div class=\"ui-timeline-wait\"></div>`;\n\t\tDom.append(this.editorLoader, this.getContainer());\n\t}\n\n\thideEditorLoader()\n\t{\n\t\tDom.remove(this.editorLoader);\n\t}\n\n\thideVisualEditor()\n\t{\n\t\tif(this.postForm)\n\t\t{\n\t\t\tthis.postForm.eventNode.style.display = 'none';\n\t\t}\n\t}\n\n\tsave()\n\t{\n\t\tif(this.isProgress || !this.postForm)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tlet isCancel = false;\n\t\tconst description = this.postForm.oEditor.GetContent();\n\t\tthis.editorContent = description;\n\t\tconst files = this.getAttachments();\n\t\tthis.emit('beforeSave', {description, isCancel, files});\n\t\tif(description === '')\n\t\t{\n\t\t\tthis.getEmptyMessageNotification().show();\n\t\t\treturn;\n\t\t}\n\t\tif(isCancel === true)\n\t\t{\n\t\t\tthis.cancel();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.startProgress();\n\t\tconst event = new BaseEvent({\n\t\t\tdata: {\n\t\t\t\tdescription,\n\t\t\t\tfiles,\n\t\t\t\tcommentId: this.commentId,\n\t\t\t},\n\t\t});\n\t\tthis.emitAsync('onSave', event).then(() => {\n\t\t\tthis.postForm.reinit();\n\t\t\tthis.stopProgress();\n\t\t\tthis.emit('afterSave', {\n\t\t\t\tdata: event.getData(),\n\t\t\t});\n\t\t\tthis.cancel();\n\t\t}).catch(() =>\n\t\t{\n\t\t\t//todo why are we here?\n\t\t\tthis.stopProgress();\n\t\t\tthis.cancel();\n\t\t\tconst message = event.getData().message;\n\t\t\tif(message)\n\t\t\t{\n\t\t\t\tthis.emit('error', {\n\t\t\t\t\tmessage\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tcancel()\n\t{\n\t\tthis.hideVisualEditor();\n\t\tconst container = this.getContainer();\n\t\tif(container)\n\t\t{\n\t\t\tcontainer.classList.remove('focus');\n\t\t}\n\t\tthis.stopProgress();\n\t\tthis.emit('cancel');\n\t}\n\n\tgetEmptyMessageNotification(): Popup\n\t{\n\t\tif(!this.emptyMessagePopup)\n\t\t{\n\t\t\tthis.emptyMessagePopup = new Popup({\n\t\t\t\tid: this.getId() + '-empty-message-popup',\n\t\t\t\tbindElement: this.getSaveButton(),\n\t\t\t\tcontent: BX.message('UI_TIMELINE_EMPTY_COMMENT_NOTIFICATION'),\n\t\t\t\tdarkMode: true,\n\t\t\t\tautoHide: true,\n\t\t\t\tzIndex: 990,\n\t\t\t\tangle: {position: 'top', offset: 77},\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tbindOptions: { forceBindPosition: true}\n\t\t\t});\n\t\t}\n\n\t\treturn this.emptyMessagePopup;\n\t}\n\n\trefresh()\n\t{\n\t\tif(this.postForm && this.postForm.oEditor)\n\t\t{\n\t\t\tif(this.editorContent)\n\t\t\t{\n\t\t\t\tthis.postForm.oEditor.SetContent(this.editorContent);\n\t\t\t}\n\t\t}\n\t\tif(this.visualEditor)\n\t\t{\n\t\t\tthis.visualEditor.ReInitIframe();\n\t\t}\n\t}\n\n\tgetAttachments(): Array\n\t{\n\t\tconst attachments = [];\n\t\tif(!this.postForm || !Type.isPlainObject(this.postForm.arFiles) || !Type.isPlainObject(this.postForm.controllers))\n\t\t{\n\t\t\treturn attachments;\n\t\t}\n\n\t\tconst fileControllers = [];\n\t\tObject.values(this.postForm.arFiles).forEach((controller) =>\n\t\t{\n\t\t\tif(!fileControllers.includes(controller))\n\t\t\t{\n\t\t\t\tfileControllers.push(controller);\n\t\t\t}\n\t\t});\n\t\tfileControllers.forEach((fileController) =>\n\t\t{\n\t\t\tif(this.postForm.controllers[fileController] && Type.isPlainObject(this.postForm.controllers[fileController].values))\n\t\t\t{\n\t\t\t\tObject.keys(this.postForm.controllers[fileController].values).forEach((fileId) =>\n\t\t\t\t{\n\t\t\t\t\tif(!attachments.includes(fileId))\n\t\t\t\t\t{\n\t\t\t\t\t\tattachments.push(fileId);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t});\n\n\t\treturn attachments;\n\t}\n}","import {Loc, Text, Tag, Type, Runtime, Event, Dom} from 'main.core';\nimport {History} from './history';\nimport {MessageBox} from 'ui.dialogs.messagebox';\nimport {CommentEditor} from \"./commenteditor\";\nimport {BaseEvent} from \"main.core.events\";\n\nconst COLLAPSE_TEXT_MAX_LENGTH = 128;\n\n/**\n * @memberOf BX.UI.Timeline\n * @mixes EventEmitter\n */\nexport class Comment extends History\n{\n\tcommentEditor: ?CommentEditor;\n\tisCollapsed = null;\n\tisContentLoaded = null;\n\n\tconstructor(props)\n\t{\n\t\tsuper(props);\n\t\tthis.setEventNamespace('BX.UI.Timeline.Comment');\n\t}\n\n\n\tafterRender()\n\t{\n\t\tsuper.afterRender();\n\n\t\tif(this.isCollapsed === null)\n\t\t{\n\t\t\tthis.isCollapsed = this.isAddExpandBlock();\n\t\t}\n\t\tif(this.isContentLoaded === null)\n\t\t{\n\t\t\tthis.isContentLoaded = !this.hasFiles();\n\t\t}\n\t\tif(this.isCollapsed)\n\t\t{\n\t\t\tthis.getMain().classList.add('ui-timeline-content-description-collapsed');\n\t\t\tthis.getMain().classList.remove('ui-timeline-content-description-expand');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getMain().classList.remove('ui-timeline-content-description-collapsed');\n\t\t\tthis.getMain().classList.add('ui-timeline-content-description-expand');\n\t\t}\n\t\tif(this.isAddExpandBlock())\n\t\t{\n\t\t\tthis.getMainDescription().appendChild(this.renderExpandBlock());\n\t\t}\n\t\tif(this.hasFiles())\n\t\t{\n\t\t\tthis.getContent().appendChild(Tag.render`<div class=\"ui-timeline-section-files\">${this.renderFilesContainer()}</div>`);\n\t\t\tEvent.ready(() => {\n\t\t\t\tsetTimeout(() =>\n\t\t\t\t{\n\t\t\t\t\tthis.loadFilesContent();\n\t\t\t\t}, 100);\n\t\t\t});\n\t\t}\n\t}\n\n\tgetFiles(): Array\n\t{\n\t\tif(Type.isArray(this.data.files))\n\t\t{\n\t\t\treturn this.data.files;\n\t\t}\n\n\t\treturn [];\n\t}\n\n\thasFiles(): boolean\n\t{\n\t\treturn (this.getFiles().length > 0);\n\t}\n\n\tisAddExpandBlock(): boolean\n\t{\n\t\treturn ((this.textDescription.length > COLLAPSE_TEXT_MAX_LENGTH) || this.hasFiles());\n\t}\n\n\trenderContainer(): Element\n\t{\n\t\tconst container = super.renderContainer();\n\t\tcontainer.classList.add('ui-item-detail-stream-section-comment');\n\t\tcontainer.classList.remove('ui-item-detail-stream-section-info');\n\n\t\treturn container;\n\t}\n\n\trenderMain(): Element\n\t{\n\t\tthis.layout.main = Tag.render`<div class=\"ui-item-detail-stream-content-detail\">\n\t\t\t${this.renderMainDescription()}\n\t\t</div>`;\n\n\t\treturn this.getMain();\n\t}\n\n\tgetMain(): ?Element\n\t{\n\t\treturn this.layout.main;\n\t}\n\n\trenderMainDescription(): Element\n\t{\n\t\tthis.layout.mainDescription = Tag.render`<div class=\"ui-item-detail-stream-content-description\" onclick=\"${this.onMainClick.bind(this)}\">${this.htmlDescription}</div>`;\n\n\t\treturn this.getMainDescription();\n\t}\n\n\tgetMainDescription(): ?Element\n\t{\n\t\treturn this.layout.mainDescription;\n\t}\n\n\trenderExpandBlock(): Element\n\t{\n\t\tthis.layout.expandBlock = Tag.render`<div class=\"ui-timeline-content-description-expand-container\">${this.renderExpandButton()}</div>`;\n\n\t\treturn this.getExpandBlock();\n\t}\n\n\tgetExpandBlock(): ?Element\n\t{\n\t\treturn this.layout.expandBlock;\n\t}\n\n\trenderExpandButton(): Element\n\t{\n\t\tthis.layout.expandButton = Tag.render`<a class=\"ui-timeline-content-description-expand-btn\" onclick=\"${this.onExpandButtonClick.bind(this)}\">\n\t\t\t${Loc.getMessage((this.isCollapsed ? 'UI_TIMELINE_EXPAND_SM' : 'UI_TIMELINE_COLLAPSE_SM'))}\n\t\t</a>`;\n\n\t\treturn this.getExpandButton();\n\t}\n\n\tgetExpandButton(): ?Element\n\t{\n\t\treturn this.layout.expandButton;\n\t}\n\n\tgetCommendEditor(): CommentEditor\n\t{\n\t\tif(!this.commentEditor)\n\t\t{\n\t\t\tthis.commentEditor = new CommentEditor({\n\t\t\t\tcommentId: this.getId(),\n\t\t\t\tid: 'UICommentEditor' + this.getId() + (this.isPinned ? 'pinned' : '') + Text.getRandom(),\n\t\t\t});\n\t\t\tthis.commentEditor.layout.container = this.getContainer();\n\t\t\tthis.commentEditor.subscribe('cancel', this.switchToViewMode.bind(this));\n\t\t\tthis.commentEditor.subscribe('afterSave', this.onSaveComment.bind(this));\n\t\t}\n\n\t\treturn this.commentEditor;\n\t}\n\n\tgetEditorContainer(): ?Element\n\t{\n\t\treturn this.layout.editorContainer;\n\t}\n\n\trenderEditorContainer(): Element\n\t{\n\t\tconst editorContainer = this.getCommendEditor().getVisualEditorContainer();\n\t\tif(editorContainer)\n\t\t{\n\t\t\tthis.layout.editorContainer = editorContainer;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.layout.editorContainer = this.getCommendEditor().renderVisualEditorContainer();\n\t\t}\n\n\t\treturn this.getEditorContainer();\n\t}\n\n\tgetEditorButtons(): ?Element\n\t{\n\t\treturn this.layout.editorButtons;\n\t}\n\n\trenderEditorButtons(): Element\n\t{\n\t\tthis.layout.editorButtons = this.getCommendEditor().renderButtons();\n\n\t\treturn this.getEditorButtons();\n\t}\n\n\trenderFilesContainer(): Element\n\t{\n\t\tthis.layout.filesContainer = Tag.render`<div class=\"ui-timeline-section-files-inner\"></div>`;\n\n\t\treturn this.getFilesContainer();\n\t}\n\n\tgetFilesContainer(): ?Element\n\t{\n\t\treturn this.layout.filesContainer;\n\t}\n\n\tswitchToEditMode()\n\t{\n\t\tif(!this.isRendered())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif(!this.getEditorContainer())\n\t\t{\n\t\t\tthis.getMain().appendChild(this.renderEditorContainer());\n\t\t\tthis.getMain().appendChild(this.renderEditorButtons());\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.getCommendEditor().refresh();\n\t\t}\n\n\t\tthis.getContent().classList.add('ui-item-detail-comment-edit');\n\t\tthis.getCommendEditor().showVisualEditor();\n\t}\n\n\tswitchToViewMode()\n\t{\n\t\tthis.getContent().classList.remove('ui-item-detail-comment-edit');\n\t\tthis.getCommendEditor().hideVisualEditor();\n\t}\n\n\tgetActions(): Array\n\t{\n\t\treturn [\n\t\t\t{\n\t\t\t\ttext: Loc.getMessage('UI_TIMELINE_ACTION_MODIFY'),\n\t\t\t\tonclick: this.actionEdit.bind(this),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: Loc.getMessage('UI_TIMELINE_ACTION_DELETE'),\n\t\t\t\tonclick: this.actionDelete.bind(this),\n\t\t\t}\n\t\t];\n\t}\n\n\tactionEdit()\n\t{\n\t\tthis.getActionsMenu().close();\n\t\tthis.switchToEditMode();\n\t}\n\n\tactionDelete()\n\t{\n\t\tthis.getActionsMenu().close();\n\t\tMessageBox.confirm(Loc.getMessage('UI_TIMELINE_COMMENT_DELETE_CONFIRM'), () => {\n\t\t\treturn new Promise((resolve) => {\n\t\t\t\tif(this.isProgress)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.startProgress();\n\t\t\t\tconst event = new BaseEvent({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tcommentId: this.getId(),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tthis.emitAsync('onDelete', event).then(() => {\n\t\t\t\t\tthis.stopProgress();\n\t\t\t\t\tthis.onDelete();\n\t\t\t\t\tresolve();\n\t\t\t\t}).catch(() => {\n\t\t\t\t\tthis.stopProgress();\n\t\t\t\t\tconst message = event.getData().message;\n\t\t\t\t\tif(message)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.emit('error', {\n\t\t\t\t\t\t\tmessage\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tclearLayout(isSkipContainer = false): Item\n\t{\n\t\tthis.commentEditor = null;\n\n\t\treturn super.clearLayout(isSkipContainer);\n\t}\n\n\tonSaveComment(event: BaseEvent)\n\t{\n\t\tconst data = event.getData();\n\t\tif(data.data && data.data.comment)\n\t\t{\n\t\t\tthis.update(data.data.comment);\n\t\t}\n\t}\n\n\tonMainClick({target})\n\t{\n\t\tif(Type.isDomNode(target))\n\t\t{\n\t\t\tconst tagName = target.tagName.toLowerCase();\n\t\t\tif(\n\t\t\t\ttagName === 'a'\n\t\t\t\t|| tagName === 'img'\n\t\t\t\t|| Dom.hasClass(target, 'feed-con-file-changes-link-more')\n\t\t\t\t|| Dom.hasClass(target, 'feed-com-file-inline')\n\t\t\t\t|| (document.getSelection().toString().length > 0)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis.switchToEditMode();\n\t}\n\n\tonExpandButtonClick(event)\n\t{\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\tif(!this.isRendered())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif(this.isCollapsed === true)\n\t\t{\n\t\t\tthis.getExpandBlock().style.maxHeight = this.getExpandBlock().scrollHeight + 130 + \"px\";\n\t\t\tthis.getMain().classList.remove('ui-timeline-content-description-collapsed');\n\t\t\tthis.getMain().classList.add('ui-timeline-content-description-expand');\n\t\t\tsetTimeout(() =>\n\t\t\t{\n\t\t\t\tthis.getExpandBlock().style.maxHeight = \"\";\n\t\t\t}, 300);\n\t\t\tthis.getExpandButton().innerText = Loc.getMessage('UI_TIMELINE_COLLAPSE_SM');\n\t\t\tif(!this.isContentLoaded)\n\t\t\t{\n\t\t\t\tthis.isContentLoaded = true;\n\t\t\t\tthis.loadContent();\n\t\t\t}\n\t\t\tthis.isCollapsed = false;\n\t\t}\n\t\telse if(this.isCollapsed === false)\n\t\t{\n\t\t\tthis.getExpandBlock().style.maxHeight = this.getExpandBlock().scrollHeight + \"px\";\n\t\t\tthis.getMain().classList.add('ui-timeline-content-description-collapsed');\n\t\t\tthis.getMain().classList.remove('ui-timeline-content-description-expand');\n\t\t\tsetTimeout(() =>\n\t\t\t{\n\t\t\t\tthis.getExpandBlock().style.maxHeight = \"\";\n\t\t\t}, 0);\n\t\t\tthis.getExpandButton().innerText = Loc.getMessage('UI_TIMELINE_EXPAND_SM');\n\t\t\tthis.isCollapsed = true;\n\t\t}\n\t}\n\n\tloadFilesContent()\n\t{\n\t\tif(this.isProgress)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.startProgress();\n\t\tconst event = new BaseEvent({\n\t\t\tdata: {\n\t\t\t\tcommentId: this.getId(),\n\t\t\t},\n\t\t});\n\t\tthis.emitAsync('onLoadFilesContent', event).then(() => {\n\t\t\tthis.stopProgress();\n\t\t\tconst html = event.getData().html;\n\t\t\tif(Type.isString(html))\n\t\t\t{\n\t\t\t\tRuntime.html(this.getFilesContainer(), html);\n\t\t\t}\n\t\t}).catch(() => {\n\t\t\tthis.stopProgress();\n\t\t\tconst message = event.getData().message;\n\t\t\tif(message)\n\t\t\t{\n\t\t\t\tthis.emit('error', {\n\t\t\t\t\tmessage\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tloadContent()\n\t{\n\t\tif(this.isProgress)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.startProgress();\n\t\tconst event = new BaseEvent({\n\t\t\tdata: {\n\t\t\t\tcommentId: this.getId(),\n\t\t\t},\n\t\t});\n\t\tthis.emitAsync('onLoadContent', event).then(() => {\n\t\t\tthis.stopProgress();\n\t\t\tconst comment = event.getData().comment;\n\t\t\tif(comment && Type.isString(comment.htmlDescription))\n\t\t\t{\n\t\t\t\tRuntime.html(this.getMainDescription(), comment.htmlDescription);\n\t\t\t\tif(this.isAddExpandBlock())\n\t\t\t\t{\n\t\t\t\t\tthis.getMainDescription().appendChild(this.getExpandBlock());\n\t\t\t\t}\n\t\t\t\tthis.updateData(comment);\n\t\t\t}\n\t\t}).catch(() => {\n\t\t\tthis.stopProgress();\n\t\t\tconst message = event.getData().message;\n\t\t\tif(message)\n\t\t\t{\n\t\t\t\tthis.emit('error', {\n\t\t\t\t\tmessage\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}","/**\n * @abstract\n */\nexport class Animation\n{\n\tstart(): Promise\n\t{\n\n\t}\n\n\tfinish(node: Element, onFinish: ?Function)\n\t{\n\n\t}\n}","import {Dom, Tag, Type} from 'main.core';\nimport {Item} from '../item';\nimport {Animation} from './animation';\n\nexport class Drop extends Animation\n{\n\tstatic DEFAULT_TIMEOUT = 150;\n\tstatic DURATION = 1200;\n\n\titem: Item;\n\tcontainer: Element;\n\tinsertAfter: Element;\n\n\tconstructor(params: {\n\t\titem: Item,\n\t\tcontainer: Element,\n\t\tinsertAfter: Element,\n\t})\n\t{\n\t\tsuper(params);\n\t\tif(Type.isPlainObject(params))\n\t\t{\n\t\t\tif(params.item instanceof Item && Type.isDomNode(params.container))\n\t\t\t{\n\t\t\t\tthis.item = params.item;\n\t\t\t\tthis.container = params.container;\n\t\t\t\tthis.insertAfter = params.insertAfter;\n\t\t\t}\n\t\t}\n\t}\n\n\tstart(): Promise\n\t{\n\t\tconst timeout = Drop.DEFAULT_TIMEOUT;\n\n\t\treturn new Promise((resolve) => {\n\t\t\tif(!this.item || !this.container)\n\t\t\t{\n\t\t\t\tresolve();\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.createGhost(this.item.render(), resolve);\n\t\t\t}, timeout);\n\t\t});\n\t}\n\n\tcreateGhost(node: Element, onFinish: Function)\n\t{\n\t\tnode.style.position = \"absolute\";\n\t\tnode.style.width = this.container.offsetWidth + \"px\";\n\t\tnode.style.top = Dom.getPosition(this.container).top + \"px\";\n\t\tnode.style.left = Dom.getPosition(this.container).left + \"px\";\n\t\tdocument.body.appendChild(node);\n\n\t\tthis.anchor = Tag.render`<div class=\"ui-item-detail-stream-section ui-item-detail-stream-section-shadow\"></div>`;\n\t\tDom.prepend(this.anchor, this.container);\n\t\tif(Type.isDomNode(this.insertAfter))\n\t\t{\n\t\t\tDom.insertAfter(this.anchor, this.insertAfter);\n\t\t}\n\n\t\tthis.moveGhost(node, onFinish);\n\t}\n\n\tmoveGhost(node: Element, onFinish: ?Function)\n\t{\n\t\tconst anchorPosition = Dom.getPosition(this.anchor);\n\t\tconst startPosition = Dom.getPosition(this.container);\n\n\t\tconst movingEvent = new BX.easing({\n\t\t\tduration : Drop.DURATION,\n\t\t\tstart : { top: startPosition.top, height: 0},\n\t\t\tfinish: { top: anchorPosition.top - 5, height: Dom.getPosition(node).height},\n\t\t\ttransition : BX.easing.makeEaseOut(BX.easing.transitions.quart),\n\t\t\tstep: ((state) => {\n\t\t\t\tnode.style.top = state.top + \"px\";\n\t\t\t\tthis.anchor.style.height = state.height + \"px\";\n\t\t\t}),\n\t\t\tcomplete: (() => {\n\t\t\t\tthis.finish(node, onFinish);\n\t\t\t})\n\t\t});\n\n\t\tmovingEvent.animate();\n\t}\n\n\tfinish(node: Element, onFinish: ?Function)\n\t{\n\t\tnode.style.position = \"\";\n\t\tnode.style.width = \"\";\n\t\tnode.style.height = \"\";\n\t\tnode.style.top = \"\";\n\t\tnode.style.left = \"\";\n\t\tnode.style.opacity = \"\";\n\n\t\tDom.insertAfter(node, this.anchor);\n\t\tDom.remove(this.anchor);\n\t\tthis.anchor = null;\n\n\t\tif(Type.isFunction(onFinish))\n\t\t{\n\t\t\tonFinish();\n\t\t}\n\t}\n}\n","import {Dom, Type} from 'main.core';\nimport {Item} from '../item';\nimport {Animation} from './animation';\n\nexport class Pin extends Animation\n{\n\tstatic DURATION = 1500;\n\n\titem: Item;\n\tanchor: Element;\n\tnode: Element;\n\tstartPosition: {};\n\n\tconstructor(params: {\n\t\titem: Item,\n\t\tanchor: Element,\n\t\tstartPosition: {},\n\t})\n\t{\n\t\tsuper(params);\n\t\tif(Type.isPlainObject(params))\n\t\t{\n\t\t\tif(params.item instanceof Item && Type.isDomNode(params.anchor))\n\t\t\t{\n\t\t\t\tthis.item = params.item;\n\t\t\t\tthis.anchor = params.anchor;\n\t\t\t\tthis.startPosition = params.startPosition;\n\t\t\t}\n\t\t}\n\t}\n\n\tstart(): Promise\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tif(!this.item || !this.anchor)\n\t\t\t{\n\t\t\t\tresolve();\n\t\t\t}\n\n\t\t\tthis.node = this.item.render();\n\t\t\tDom.addClass(this.node, 'ui-item-detail-stream-section-top-fixed');\n\n\t\t\tthis.node.style.position = \"absolute\";\n\t\t\tthis.node.style.width = this.startPosition.width + \"px\";\n\n\t\t\tlet _cloneHeight = this.startPosition.height;\n\t\t\tconst _minHeight = 65;\n\t\t\tconst _sumPaddingContent = 18;\n\t\t\tif (_cloneHeight < _sumPaddingContent + _minHeight)\n\t\t\t\t_cloneHeight = _sumPaddingContent + _minHeight;\n\n\t\t\tthis.node.style.height = _cloneHeight + \"px\";\n\t\t\tthis.node.style.top = this.startPosition.top + \"px\";\n\t\t\tthis.node.style.left = this.startPosition.left + \"px\";\n\t\t\tthis.node.style.zIndex = 960;\n\n\t\t\tdocument.body.appendChild(this.node);\n\n\t\t\tthis._anchorPosition = Dom.getPosition(this.anchor);\n\t\t\tconst finish = {\n\t\t\t\ttop: this._anchorPosition.top,\n\t\t\t\theight: _cloneHeight + 15,\n\t\t\t\topacity: 1\n\t\t\t};\n\n\t\t\tconst _difference = this.startPosition.top - this._anchorPosition.bottom;\n\t\t\tconst _deepHistoryLimit = 2 * (document.body.clientHeight + this.startPosition.height);\n\n\t\t\tif (_difference > _deepHistoryLimit)\n\t\t\t{\n\t\t\t\tfinish.top = this.startPosition.top - _deepHistoryLimit;\n\t\t\t\tfinish.opacity = 0;\n\t\t\t}\n\n\t\t\tlet _duration = Math.abs(finish.top - this.startPosition.top) * 2;\n\t\t\t_duration = (_duration < Pin.DURATION) ? Pin.DURATION : _duration;\n\n\t\t\tconst movingEvent = new BX.easing({\n\t\t\t\tduration : _duration,\n\t\t\t\tstart : {\n\t\t\t\t\ttop: this.startPosition.top,\n\t\t\t\t\theight: 0,\n\t\t\t\t\topacity: 1,\n\t\t\t\t},\n\t\t\t\tfinish: finish,\n\t\t\t\ttransition : BX.easing.makeEaseOut(BX.easing.transitions.quart),\n\t\t\t\tstep: (state) => {\n\t\t\t\t\tthis.node.style.top = state.top + \"px\";\n\t\t\t\t\tthis.node.style.opacity = state.opacity;\n\t\t\t\t\tthis.anchor.style.height = state.height + \"px\";\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.finish(this.node, resolve);\n\t\t\t\t},\n\t\t\t});\n\t\t\tmovingEvent.animate();\n\t\t});\n\t}\n\n\tfinish(node: Element, onFinish: ?Function)\n\t{\n\t\tnode.style.position = \"\";\n\t\tnode.style.width = \"\";\n\t\tnode.style.height = \"\";\n\t\tnode.style.top = \"\";\n\t\tnode.style.left = \"\";\n\t\tnode.style.zIndex = \"\";\n\t\tthis.anchor.style.height = 0;\n\n\t\tDom.insertAfter(node, this.anchor);\n\n\t\tif(Type.isFunction(onFinish))\n\t\t{\n\t\t\tonFinish();\n\t\t}\n\t}\n}","import {Dom, Type} from 'main.core';\nimport {Item} from '../item';\nimport {Animation} from './animation';\n\nexport class Show extends Animation\n{\n\tstatic EXPAND_DURATION = 150;\n\tstatic FADE_IN_DURATION = 150;\n\n\titem: Item;\n\tcontainer: Element;\n\tinsertAfter: Element;\n\n\tconstructor(params: {\n\t\titem: Item,\n\t\tcontainer: Element,\n\t\tinsertAfter: Element,\n\t})\n\t{\n\t\tsuper(params);\n\t\tif(Type.isPlainObject(params))\n\t\t{\n\t\t\tif(params.item instanceof Item && Type.isDomNode(params.container) && Type.isDomNode(params.insertAfter))\n\t\t\t{\n\t\t\t\tthis.item = params.item;\n\t\t\t\tthis.container = params.container;\n\t\t\t\tthis.insertAfter = params.insertAfter;\n\t\t\t}\n\t\t}\n\t}\n\n\tstart(): Promise\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tif(!this.item || !this.container || !this.insertAfter)\n\t\t\t{\n\t\t\t\tresolve();\n\t\t\t}\n\n\t\t\tDom.insertAfter(this.item.render(), this.insertAfter);\n\n\t\t\tthis.expand().then(() => {\n\t\t\t\tthis.fadeIn().then(() => {\n\t\t\t\t\tthis.finish(this.item.getContainer(), resolve);\n\t\t\t\t})\n\t\t\t});\n\t\t});\n\t}\n\n\texpand(): Promise\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tconst node = this.item.getContainer();\n\n\t\t\tconst position = Dom.getPosition(node);\n\t\t\tnode.style.height = 0;\n\t\t\tnode.style.opacity = 0;\n\t\t\tnode.style.overflow = 'hidden';\n\n\t\t\tconst show = new BX.easing({\n\t\t\t\tduration: Show.EXPAND_DURATION,\n\t\t\t\tstart: {\n\t\t\t\t\theight: 0,\n\t\t\t\t},\n\t\t\t\tfinish: {\n\t\t\t\t\theight: position.height\n\t\t\t\t},\n\t\t\t\ttransition : BX.easing.makeEaseOut(BX.easing.transitions.quart),\n\t\t\t\tstep: (state) => {\n\t\t\t\t\tnode.style.height = state.height + 'px';\n\t\t\t\t},\n\t\t\t\tcomplete: resolve,\n\t\t\t});\n\n\t\t\tshow.animate();\n\t\t});\n\t}\n\n\tfadeIn(): Promise\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.item.getContainer().style.overflow = '';\n\t\t\tconst fadeIn = new BX.easing({\n\t\t\t\tduration: Show.FADE_IN_DURATION,\n\t\t\t\tstart: {\n\t\t\t\t\topacity: 0,\n\t\t\t\t},\n\t\t\t\tfinish: {\n\t\t\t\t\topacity: 100,\n\t\t\t\t},\n\t\t\t\ttransition : BX.easing.makeEaseOut(BX.easing.transitions.quart),\n\t\t\t\tstep: (state) => {\n\t\t\t\t\tthis.item.getContainer().style.opacity = state.opacity / 100;\n\t\t\t\t},\n\t\t\t\tcomplete: resolve,\n\t\t\t});\n\n\t\t\tfadeIn.animate();\n\t\t});\n\t}\n\n\tfinish(node: Element, onFinish: ?Function)\n\t{\n\t\tthis.item.getContainer().style.height = \"\";\n\t\tthis.item.getContainer().style.opacity = \"\";\n\n\t\tif(Type.isFunction(onFinish))\n\t\t{\n\t\t\tonFinish();\n\t\t}\n\t}\n}","import {Dom, Tag, Type} from 'main.core';\nimport {Item} from '../item';\nimport {Animation} from './animation';\n\nexport class TaskComplete extends Animation\n{\n\tstatic DURATION = 1200;\n\n\ttask: Item;\n\titem: Item;\n\tinsertAfter: Element;\n\n\tconstructor(params: {\n\t\titem: Item,\n\t\ttask: Item,\n\t\tinsertAfter: Element,\n\t})\n\t{\n\t\tsuper(params);\n\t\tif(Type.isPlainObject(params))\n\t\t{\n\t\t\tif(\n\t\t\t\tparams.item instanceof Item &&\n\t\t\t\tparams.task instanceof Item &&\n\t\t\t\tType.isDomNode(params.insertAfter)\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.item = params.item;\n\t\t\t\tthis.task = params.task;\n\t\t\t\tthis.insertAfter = params.insertAfter;\n\t\t\t}\n\t\t}\n\t}\n\n\tstart(): Promise\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tif(!this.item || !this.task || !this.container || !this.insertAfter)\n\t\t\t{\n\t\t\t\tresolve();\n\t\t\t}\n\n\t\t\tconst node = this.item.render();\n\t\t\tconst taskNode = this.task.getContainer();\n\t\t\tconst startPosition = Dom.getPosition(taskNode);\n\n\t\t\tnode.style.position = \"absolute\";\n\t\t\tnode.style.width = taskNode.offsetWidth + \"px\";\n\t\t\tnode.style.top = startPosition.top + \"px\";\n\t\t\tnode.style.left = startPosition.left + \"px\";\n\t\t\tnode.style.zIndex = \"999\";\n\t\t\tDom.addClass(node, 'ui-item-detail-stream-section-show');\n\t\t\tdocument.body.appendChild(node);\n\n\t\t\tthis.anchor = Tag.render`<div class=\"ui-item-detail-stream-section ui-item-detail-stream-section-shadow\"></div>`;\n\t\t\tDom.prepend(this.anchor, this.container);\n\t\t\tif(Type.isDomNode(this.insertAfter))\n\t\t\t{\n\t\t\t\tDom.insertAfter(this.anchor, this.insertAfter);\n\t\t\t}\n\n\t\t\ttaskNode.style.height = taskNode.offsetHeight + 'px';\n\t\t\tDom.addClass(taskNode, 'ui-item-detail-stream-section-hide');\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tconst taskHeight = taskNode.offsetHeight;\n\t\t\t\tthis.anchor.style.height = taskHeight + \"px\";\n\t\t\t\tDom.remove(taskNode);\n\n\t\t\t\tDom.removeClass(node, 'ui-item-detail-stream-section-show');\n\n\t\t\t\tconst movingEvent = new BX.easing({\n\t\t\t\t\tduration : 800,\n\t\t\t\t\tstart : { top: Dom.getPosition(node).top, height: taskHeight},\n\t\t\t\t\tfinish: { top: Dom.getPosition(this.anchor).top, height: Dom.getPosition(node).height},\n\t\t\t\t\ttransition : BX.easing.makeEaseOut(BX.easing.transitions.quart),\n\t\t\t\t\tstep: ((state) => {\n\t\t\t\t\t\tnode.style.top = state.top + \"px\";\n\t\t\t\t\t\tthis.anchor.style.height = state.height + \"px\";\n\t\t\t\t\t}),\n\t\t\t\t\tcomplete: (() => {\n\t\t\t\t\t\tthis.finish(node, resolve);\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t\tmovingEvent.animate();\n\t\t\t}.bind(this), 200);\n\t\t});\n\t}\n\n\tfinish(node: Element, onFinish: ?Function)\n\t{\n\t\tnode.style.position = \"\";\n\t\tnode.style.width = \"\";\n\t\tnode.style.top = \"\";\n\t\tnode.style.left = \"\";\n\t\tnode.style.zIndex = \"\";\n\n\t\tDom.insertAfter(node, this.anchor);\n\t\tDom.remove(this.anchor);\n\t\tthis.anchor = null;\n\n\t\tif(Type.isFunction(onFinish))\n\t\t{\n\t\t\tonFinish();\n\t\t}\n\t}\n}","import {Dom, Type} from 'main.core';\nimport {Animation} from './animation';\n\nexport class Hide extends Animation\n{\n\tstatic DURATION = 1000;\n\n\tnode: Element;\n\n\tconstructor(params: {\n\t\tnode: Element,\n\t})\n\t{\n\t\tsuper(params);\n\t\tif(Type.isPlainObject(params))\n\t\t{\n\t\t\tif(Type.isDomNode(params.node))\n\t\t\t{\n\t\t\t\tthis.node = params.node;\n\t\t\t}\n\t\t}\n\t}\n\n\tstart(): Promise\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tif(!this.node)\n\t\t\t{\n\t\t\t\tresolve();\n\t\t\t}\n\t\t\tconst node = this.node;\n\t\t\tconst wrapperPosition = Dom.getPosition(node);\n\n\t\t\tconst hideEvent = new BX.easing({\n\t\t\t\tduration : Hide.DURATION,\n\t\t\t\tstart : {\n\t\t\t\t\theight: wrapperPosition.height,\n\t\t\t\t\topacity: 1,\n\t\t\t\t\tmarginBottom: 15\n\t\t\t\t},\n\t\t\t\tfinish: {\n\t\t\t\t\theight: 0,\n\t\t\t\t\topacity: 0,\n\t\t\t\t\tmarginBottom: 0\n\t\t\t\t},\n\t\t\t\ttransition : BX.easing.makeEaseOut(BX.easing.transitions.quart),\n\t\t\t\tstep: (state) => {\n\t\t\t\t\tif(node)\n\t\t\t\t\t{\n\t\t\t\t\t\tnode.style.height = state.height + \"px\";\n\t\t\t\t\t\tnode.style.opacity = state.opacity;\n\t\t\t\t\t\tnode.style.marginBottom = state.marginBottom;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.finish(node, resolve);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\thideEvent.animate();\n\t\t});\n\t}\n\n\tfinish(node: Element, onFinish: ?Function)\n\t{\n\t\tDom.remove(node);\n\n\t\tif(Type.isFunction(onFinish))\n\t\t{\n\t\t\tonFinish();\n\t\t}\n\t}\n}","import {Type} from 'main.core';\nimport {Animation} from \"./animation\";\n\nexport class Queue\n{\n\tstatic #items = [];\n\tstatic #isRunning = false;\n\n\tstatic add(animation: Animation|Animation[]): Queue\n\t{\n\t\tQueue.#items.push(animation);\n\n\t\treturn Queue;\n\t}\n\n\tstatic run()\n\t{\n\t\tif(Queue.#isRunning)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\t/** @var Animation animation */\n\t\tlet animations = Queue.#items.shift();\n\t\tif(!animations)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tif(!Type.isArray(animations))\n\t\t{\n\t\t\tanimations = [animations];\n\t\t}\n\t\tQueue.#isRunning = true;\n\t\tconst promises = [];\n\t\tanimations.forEach((animation: Animation) => {\n\t\t\tif(animation instanceof Animation)\n\t\t\t{\n\t\t\t\tpromises.push(animation.start());\n\t\t\t}\n\t\t});\n\n\t\tPromise.all(promises).then(() => {\n\t\t\tQueue.#isRunning = false;\n\t\t\tQueue.run();\n\t\t});\n\t}\n}","import {Loc, Dom, Text, Event, Tag, Type, Reflection, Runtime} from 'main.core';\nimport {EventEmitter, BaseEvent} from 'main.core.events';\nimport {Loader} from 'main.loader';\nimport {Item} from './item';\nimport {History} from './history';\nimport {StageChange} from './stagechange';\nimport {FieldsChange} from './fieldschange';\nimport {Editor} from './editor';\nimport {Comment} from './comment';\nimport {Drop} from './animation/drop';\nimport {Pin} from './animation/pin';\nimport {Show} from './animation/show';\nimport {TaskComplete} from './animation/taskcomplete';\nimport {Hide} from './animation/hide';\nimport {Queue} from './animation/queue';\n\nimport 'main.date';\n\n/**\n * @mixes EventEmitter\n * @memberOf BX.UI.Timeline\n */\nexport class Stream\n{\n\tconstructor(params: {\n\t\titems: ?Array,\n\t\tusers: ?Object,\n\t\tnameFormat: ?string,\n\t\tpageSize: ?number,\n\t\ttasks: ?Array,\n\t\teditors: ?Array,\n\t\titemClasses: ?Array,\n\t})\n\t{\n\t\tthis.users = new Map();\n\t\tthis.eventIds = new Set();\n\t\tthis.pinnedItems = [];\n\t\tthis.tasks = [];\n\t\tthis.items = [];\n\t\tthis.editors = new Map();\n\t\tthis.layout = {};\n\t\tthis.dateSeparators = new Map();\n\t\tthis.nameFormat = params.nameFormat;\n\t\tEventEmitter.makeObservable(this, 'BX.UI.Timeline.Stream');\n\t\tthis.initItemClasses(params.itemClasses);\n\t\tthis.currentPage = 1;\n\t\tif(Type.isPlainObject(params))\n\t\t{\n\t\t\tif(Type.isNumber(params.pageSize))\n\t\t\t{\n\t\t\t\tthis.pageSize = params.pageSize;\n\t\t\t}\n\t\t\tif(!this.pageSize || this.pageSize <= 0)\n\t\t\t{\n\t\t\t\tthis.pageSize = 20;\n\t\t\t}\n\t\t\tthis.addUsers(params.users);\n\t\t\tif(Type.isArray(params.items))\n\t\t\t{\n\t\t\t\tparams.items.forEach((data) => {\n\t\t\t\t\tconst item = this.createItem(data);\n\t\t\t\t\tif(item)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.addItem(item);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Type.isArray(params.tasks))\n\t\t\t{\n\t\t\t\tthis.initTasks(params.tasks);\n\t\t\t}\n\t\t\tif(Type.isArray(params.editors))\n\t\t\t{\n\t\t\t\tparams.editors.forEach((editor: Editor) => {\n\t\t\t\t\tif(editor instanceof Editor)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.editors.set(editor.getId(), editor);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tthis.bindEvents();\n\n\t\tthis.progress = false;\n\n\t\tthis.emit('onAfterInit', {\n\t\t\tstream: this,\n\t\t});\n\t}\n\n\tinitTasks(tasks: Array)\n\t{\n\t\tthis.tasks = [];\n\t\ttasks.forEach((data) => {\n\t\t\tconst task = this.createItem(data);\n\t\t\tif(task)\n\t\t\t{\n\t\t\t\tthis.tasks.push(task);\n\t\t\t}\n\t\t});\n\t}\n\n\tbindEvents()\n\t{\n\t\tthis.onScrollHandler = Runtime.throttle(this.onScroll.bind(this), 100).bind(this);\n\t\tEvent.ready(() => {\n\t\t\tif(this.getItems().length >= this.pageSize)\n\t\t\t{\n\t\t\t\tthis.enableLoadOnScroll();\n\t\t\t}\n\t\t});\n\t\tArray.from(this.editors.values()).forEach((editor: Editor) => {\n\t\t\teditor.subscribe('error', (event: BaseEvent) => {\n\t\t\t\tthis.onError(event.getData());\n\t\t\t});\n\t\t});\n\t}\n\n\tinitItemClasses(itemClasses: ?Array)\n\t{\n\t\tif(itemClasses)\n\t\t{\n\t\t\tthis.itemClasses = new Map(itemClasses);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.itemClasses = new Map();\n\t\t}\n\t\tthis.itemClasses.set('item_create', History);\n\t\tthis.itemClasses.set('stage_change', StageChange);\n\t\tthis.itemClasses.set('fields_change', FieldsChange);\n\t\tthis.itemClasses.set('comment', Comment);\n\t}\n\n\tcreateItem(data: {}, itemClassName: ?Function): ?Item\n\t{\n\t\tif(!Type.isPlainObject(data.events))\n\t\t{\n\t\t\tdata.events = {};\n\t\t}\n\t\tdata.eventIds = this.eventIds;\n\t\tdata.events.onPinClick = this.onItemPinClick.bind(this);\n\t\tdata.events.onDelete = this.onItemDelete.bind(this);\n\t\tdata.events.onError = this.onError.bind(this);\n\t\tif(!Type.isFunction(itemClassName))\n\t\t{\n\t\t\titemClassName = this.getItemClassName(data);\n\t\t}\n\t\tconst item = new itemClassName(data);\n\t\tif(item instanceof Item)\n\t\t{\n\t\t\treturn item\n\t\t\t\t.setUserData(this.users)\n\t\t\t\t.setTimeFormat(this.getTimeFormat())\n\t\t\t\t.setNameFormat(this.nameFormat);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\taddItem(item: Item): Stream\n\t{\n\t\tif(item instanceof Item)\n\t\t{\n\t\t\tthis.items.push(item);\n\t\t\tif(item.isFixed)\n\t\t\t{\n\t\t\t\tthis.pinnedItems.push(this.getPinnedItemFromItem(item));\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tstatic getItemFromArray(items: Array, id: string|number): ?Item\n\t{\n\t\tlet result = null;\n\t\tlet key = 0;\n\t\twhile(true)\n\t\t{\n\t\t\tif(!items[key])\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst item = items[key];\n\t\t\tif(item.getId() === id)\n\t\t\t{\n\t\t\t\tresult = item;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tkey++;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic getItemIndexFromArray(items: Array, id: string|number): ?number\n\t{\n\t\tlet result = null;\n\t\tlet key = 0;\n\t\twhile(true)\n\t\t{\n\t\t\tif(!items[key])\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst item = items[key];\n\t\t\tif(item.getId() === id)\n\t\t\t{\n\t\t\t\tresult = key;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tkey++;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tgetItems(): Array\n\t{\n\t\treturn this.items;\n\t}\n\n\tgetItem(id: string|number): ?Item\n\t{\n\t\treturn Stream.getItemFromArray(this.getItems(), id);\n\t}\n\n\tgetPinnedItems(): Array\n\t{\n\t\treturn this.pinnedItems;\n\t}\n\n\tgetPinnedItem(id: string|number): ?Item\n\t{\n\t\treturn Stream.getItemFromArray(this.getPinnedItems(), id);\n\t}\n\n\tgetTasks(): Array\n\t{\n\t\treturn this.tasks;\n\t}\n\n\tgetTask(id: string|number): ?Item\n\t{\n\t\treturn Stream.getItemFromArray(this.getTasks(), id);\n\t}\n\n\trender(): Element\n\t{\n\t\tif(!this.layout.container)\n\t\t{\n\t\t\tthis.layout.container = Tag.render`<div class=\"ui-item-detail-stream-container\"></div>`;\n\t\t}\n\n\t\tif(this.editors.size > 0)\n\t\t{\n\t\t\tthis.renderEditors();\n\t\t}\n\n\t\tif(!this.layout.content)\n\t\t{\n\t\t\tthis.layout.content = Tag.render`<div class=\"ui-item-detail-stream-content\"></div>`;\n\t\t\tthis.layout.container.appendChild(this.layout.content);\n\t\t}\n\n\t\tif(!this.layout.pinnedItemsContainer)\n\t\t{\n\t\t\tthis.layout.pinnedItemsContainer = Tag.render`<div class=\"ui-item-detail-stream-container-list ui-item-detail-stream-container-list-fixed\"></div>`;\n\t\t\tthis.layout.content.appendChild(this.layout.pinnedItemsContainer);\n\t\t}\n\n\t\tthis.renderPinnedItems();\n\n\t\tif(!this.layout.tasksContainer)\n\t\t{\n\t\t\tthis.layout.tasksContainer = Tag.render`<div class=\"ui-item-detail-stream-container-list\"></div>`;\n\t\t\tthis.layout.content.appendChild(this.layout.tasksContainer);\n\t\t}\n\n\t\tthis.renderTasks();\n\n\t\tif(!this.layout.itemsContainer)\n\t\t{\n\t\t\tthis.layout.itemsContainer = Tag.render`<div class=\"ui-item-detail-stream-container-list\"></div>`;\n\t\t\tthis.layout.content.appendChild(this.layout.itemsContainer);\n\t\t}\n\n\t\tthis.renderItems();\n\n\t\tthis.emit('onAfterRender');\n\n\t\treturn this.layout.container;\n\t}\n\n\tgetContainer(): ?Element\n\t{\n\t\treturn this.layout.container\n\t}\n\n\trenderEditors()\n\t{\n\t\tif(!this.layout.container)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tif(!this.layout.editors)\n\t\t{\n\t\t\tthis.layout.editorsTitle = Tag.render`<div class=\"ui-item-detail-stream-section-new-header\"></div>`;\n\t\t\tthis.layout.editorsContent = Tag.render`<div class=\"ui-item-detail-stream-section-new-detail\"></div>`;\n\t\t\tthis.layout.editors = Tag.render`<div class=\"ui-item-detail-stream-section ui-item-detail-stream-section-new\">\n\t\t\t\t<div class=\"ui-item-detail-stream-section-icon\"></div>\n\t\t\t\t<div class=\"ui-item-detail-stream-section-content\">\n\t\t\t\t\t${this.layout.editorsTitle}\n\t\t\t\t</div>\n\t\t\t\t${this.layout.editorsContent}\n\t\t\t</div>`;\n\n\t\t\tlet isTitleActive = true;\n\t\t\tArray.from(this.editors.values()).forEach((editor: Editor) => {\n\t\t\t\tthis.layout.editorsTitle.appendChild(Tag.render`<a class=\"ui-item-detail-stream-section-new-action ${isTitleActive ? 'ui-item-detail-stream-section-new-action-active' : ''}\">${editor.getTitle()}</a>`);\n\t\t\t\tthis.layout.editorsContent.appendChild(editor.render());\n\t\t\t\tisTitleActive = false;\n\t\t\t});\n\n\t\t\tthis.layout.container.appendChild(this.layout.editors);\n\t\t}\n\t}\n\n\trenderPinnedItems()\n\t{\n\t\tDom.clean(this.layout.pinnedItemsContainer);\n\t\tthis.createFixedAnchor();\n\n\t\tthis.getPinnedItems().forEach((pinnedItem: Item) => {\n\t\t\tif(!pinnedItem.isRendered())\n\t\t\t{\n\t\t\t\tpinnedItem.render();\n\t\t\t}\n\t\t\tDom.append(pinnedItem.getContainer(), this.layout.pinnedItemsContainer);\n\t\t});\n\t}\n\n\tcreateFixedAnchor()\n\t{\n\t\tthis.fixedAnchor = Tag.render`<div class=\"ui-item-detail-stream-section-fixed-anchor\"></div>`;\n\t\tDom.prepend(this.fixedAnchor, this.layout.pinnedItemsContainer);\n\t}\n\n\tupdateTasks(tasks: Array)\n\t{\n\t\tif(!this.tasks)\n\t\t{\n\t\t\tthis.tasks = [];\n\t\t}\n\t\tconst newTasks = [];\n\t\ttasks.forEach((data) => {\n\t\t\tconst task = this.createItem(data);\n\t\t\tif(task)\n\t\t\t{\n\t\t\t\tnewTasks.push(task);\n\t\t\t\tthis.addUsers(data.users);\n\t\t\t}\n\t\t});\n\t\tconst deleteTasks = [];\n\t\tthis.tasks.forEach((task: Item) => {\n\t\t\tif(!Stream.getItemFromArray(newTasks, task.getId()))\n\t\t\t{\n\t\t\t\tdeleteTasks.push(task);\n\t\t\t}\n\t\t});\n\t\tdeleteTasks.forEach((task) => {\n\t\t\tthis.deleteItem(task);\n\t\t});\n\t\tlet tasksTitle = this.getTasksTitle();\n\t\tif(newTasks.length > 0)\n\t\t{\n\t\t\tif(!tasksTitle)\n\t\t\t{\n\t\t\t\ttasksTitle = this.renderTasksTitle();\n\t\t\t\tthis.layout.tasksContainer.appendChild(tasksTitle);\n\t\t\t}\n\t\t\tnewTasks.forEach((task: Item) => {\n\t\t\t\tif(!this.getTask(task.getId()))\n\t\t\t\t{\n\t\t\t\t\tthis.tasks.push(task);\n\t\t\t\t\tQueue.add(new Show({\n\t\t\t\t\t\titem: task,\n\t\t\t\t\t\tcontainer: this.layout.tasksContainer,\n\t\t\t\t\t\tinsertAfter: tasksTitle,\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\tconst streamTask = this.getTask(task.getId());\n\t\t\t\t\tstreamTask.setUserData(this.users);\n\t\t\t\t\tstreamTask.update(task.getDataForUpdate());\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst title = this.getTasksTitle();\n\t\t\tif(title)\n\t\t\t{\n\t\t\t\tDom.remove(title);\n\t\t\t\tthis.layout.tasksTitle = null;\n\t\t\t}\n\t\t}\n\t\tQueue.run();\n\t}\n\n\trenderTasks()\n\t{\n\t\tif(this.getTasks().length > 0)\n\t\t{\n\t\t\tthis.layout.tasksContainer.appendChild(this.renderTasksTitle());\n\t\t\tthis.getTasks().forEach((task: Item) => {\n\t\t\t\tif(!task.isRendered())\n\t\t\t\t{\n\t\t\t\t\tDom.append(task.render(), this.layout.tasksContainer);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst title = this.getTasksTitle();\n\t\t\tif(title)\n\t\t\t{\n\t\t\t\ttitle.parentElement.removeChild(title);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetTasksTitle(): ?Element\n\t{\n\t\treturn this.layout.tasksTitle;\n\t}\n\n\trenderTasksTitle(): Element\n\t{\n\t\tif(!this.layout.tasksTitle)\n\t\t{\n\t\t\tthis.layout.tasksTitle = Tag.render`<div class=\"ui-item-detail-stream-section ui-item-detail-stream-section-planned-label\">\n\t\t\t\t<div class=\"ui-item-detail-stream-section-content\">\n\t\t\t\t\t<div class=\"ui-item-detail-stream-planned-text\">${Loc.getMessage('UI_TIMELINE_TASKS_TITLE')}</div>\n\t\t\t\t</div>\n\t\t\t</div>`;\n\t\t}\n\n\t\treturn this.layout.tasksTitle;\n\t}\n\n\trenderItems()\n\t{\n\t\tconst lastItem = this.items[this.items.length - 1];\n\t\tthis.items.forEach((item: Item) => {\n\t\t\titem.setIsLast((item === lastItem));\n\t\t\tif(!item.isRendered())\n\t\t\t{\n\t\t\t\tconst day = this.constructor.getDayFromDate(item.getCreatedTime());\n\t\t\t\tif(!this.getDateSeparator(day))\n\t\t\t\t{\n\t\t\t\t\tconst dateSeparator = this.createDateSeparator(day);\n\t\t\t\t\tDom.append(dateSeparator, this.layout.itemsContainer);\n\t\t\t\t}\n\t\t\t\tDom.append(item.render(), this.layout.itemsContainer);\n\t\t\t}\n\t\t});\n\t}\n\n\tgetDateSeparator(day: string): ?Element\n\t{\n\t\treturn this.dateSeparators.get(day);\n\t}\n\n\tcreateDateSeparator(day: string): Element\n\t{\n\t\tconst separator = this.renderDateSeparator(day);\n\t\tthis.dateSeparators.set(day, separator);\n\n\t\treturn separator;\n\t}\n\n\tstatic getDayFromDate(date: Date): ?string\n\t{\n\t\tif(date instanceof Date)\n\t\t{\n\t\t\tif(Stream.isToday(date))\n\t\t\t{\n\t\t\t\treturn BX.date.format('today');\n\t\t\t}\n\n\t\t\treturn BX.date.format('d F Y', date);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tstatic isToday(date: Date): boolean\n\t{\n\t\treturn (BX.date.format('d F Y', date) === BX.date.format('d F Y'));\n\t}\n\n\trenderDateSeparator(day: string): Element\n\t{\n\t\treturn Tag.render`<div class=\"ui-item-detail-stream-section ui-item-detail-stream-section-history-label\">\n\t\t\t<div class=\"ui-item-detail-stream-section-content\">\n\t\t\t\t<div class=\"ui-item-detail-stream-history-text\">${day}</div>\n\t\t\t</div>\n\t\t</div>`;\n\t}\n\n\tgetItemClassName(data: {\n\t\taction: ?string,\n\t\titemClassName: ?string\n\t}): ?Function\n\t{\n\t\tlet itemClassName = null;\n\t\tif(Type.isPlainObject(data) && Type.isString(data.itemClassName))\n\t\t{\n\t\t\titemClassName = data.itemClassName;\n\t\t}\n\n\t\tif(itemClassName)\n\t\t{\n\t\t\titemClassName = Reflection.getClass(itemClassName);\n\t\t}\n\t\tif(!Type.isFunction(itemClassName))\n\t\t{\n\t\t\tif(Type.isPlainObject(data) && Type.isString(data.action))\n\t\t\t{\n\t\t\t\titemClassName = this.itemClasses.get(data.action);\n\t\t\t}\n\t\t\tif(!itemClassName)\n\t\t\t{\n\t\t\t\titemClassName = History;\n\t\t\t}\n\t\t}\n\n\t\treturn itemClassName;\n\t}\n\n\tinsertItem(item: Item): this\n\t{\n\t\tif(!(item instanceof Item))\n\t\t{\n\t\t\treturn this;\n\t\t}\n\n\t\tif(this.getItem(item.getId()))\n\t\t{\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.items.unshift(item);\n\t\tconst day = this.constructor.getDayFromDate(item.getCreatedTime());\n\t\tif(!day)\n\t\t{\n\t\t\treturn this;\n\t\t}\n\t\tif(!this.getDateSeparator(day))\n\t\t{\n\t\t\tconst separator = this.createDateSeparator(day);\n\t\t\tDom.prepend(separator, this.layout.itemsContainer);\n\t\t}\n\n\t\tQueue.add(new Drop({\n\t\t\titem,\n\t\t\tinsertAfter: this.getDateSeparator(day),\n\t\t\tcontainer: this.layout.editorsContent,\n\t\t})).run();\n\n\t\treturn this;\n\t}\n\n\tgetTimeFormat(): string\n\t{\n\t\tif(!this.timeFormat)\n\t\t{\n\t\t\tconst datetimeFormat = Loc.getMessage(\"FORMAT_DATETIME\").replace(/:SS/, \"\");\n\t\t\tconst dateFormat = Loc.getMessage(\"FORMAT_DATE\");\n\t\t\tthis.timeFormat = BX.date.convertBitrixFormat(datetimeFormat.trim().replace(dateFormat, \"\"));\n\t\t}\n\n\t\treturn this.timeFormat;\n\t}\n\n\tgetDateTimeFormat(): string\n\t{\n\t\tif(!this.dateTimeFormat)\n\t\t{\n\t\t\tconst datetimeFormat = Loc.getMessage(\"FORMAT_DATETIME\").replace(/:SS/, \"\");\n\t\t\tthis.dateTimeFormat = BX.date.convertBitrixFormat(datetimeFormat);\n\t\t}\n\n\t\treturn this.dateTimeFormat;\n\t}\n\n\tstartProgress()\n\t{\n\t\tthis.progress = true;\n\t\tif(!this.getLoader().isShown())\n\t\t{\n\t\t\tconst lastItem = this.items[this.items.length - 1];\n\t\t\tif(lastItem && lastItem.isRendered())\n\t\t\t{\n\t\t\t\tthis.getLoader().show(lastItem.getContainer());\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.getLoader().show(this.layout.container);\n\t\t\t}\n\t\t}\n\t}\n\n\tstopProgress()\n\t{\n\t\tthis.progress = false;\n\t\tthis.getLoader().hide();\n\t}\n\n\tisProgress()\n\t{\n\t\treturn (this.progress === true);\n\t}\n\n\tgetLoader()\n\t{\n\t\tif(!this.loader)\n\t\t{\n\t\t\tthis.loader = new Loader({size: 150});\n\t\t}\n\n\t\treturn this.loader;\n\t}\n\n\tenableLoadOnScroll()\n\t{\n\t\tEvent.bind(window, 'scroll', this.onScrollHandler);\n\t}\n\n\tdisableLoadOnScroll()\n\t{\n\t\tEvent.unbind(window, 'scroll', this.onScrollHandler);\n\t}\n\n\tonScroll()\n\t{\n\t\tif(this.isProgress())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tconst lastItem = this.items[this.items.length - 1];\n\t\tif(!lastItem)\n\t\t{\n\t\t\tthis.disableLoadOnScroll();\n\t\t\treturn;\n\t\t}\n\t\tif(!lastItem.isRendered())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tconst pos = lastItem.getContainer().getBoundingClientRect();\n\t\tif(pos.top <= document.documentElement.clientHeight)\n\t\t{\n\t\t\tthis.emit('onScrollToTheBottom');\n\t\t}\n\t}\n\n\tgetPinnedItemFromItem(item: Item): Item\n\t{\n\t\tconst pinnedItem = Runtime.clone(item);\n\t\tif(item.isRendered())\n\t\t{\n\t\t\tpinnedItem.clearLayout();\n\t\t}\n\t\tpinnedItem.setTimeFormat(this.getDateTimeFormat());\n\t\tpinnedItem.isPinned = true;\n\n\t\treturn pinnedItem;\n\t}\n\n\tonItemPinClick(item: Item)\n\t{\n\t\tif(item.isFixed)\n\t\t{\n\t\t\tthis.pinItem(item);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.unPinItem(item);\n\t\t}\n\t\tthis.emit('onPinClick', {item});\n\t}\n\n\tpinItem(item: Item): Stream\n\t{\n\t\tconst pinnedItem = this.getPinnedItem(item.getId());\n\t\tif(!pinnedItem)\n\t\t{\n\t\t\tthis.getPinnedItems().push(this.getPinnedItemFromItem(item));\n\t\t}\n\n\t\tQueue.add(new Pin({\n\t\t\titem: this.getPinnedItem(item.getId()),\n\t\t\tanchor: this.fixedAnchor,\n\t\t\tstartPosition: Dom.getPosition(item.getContainer()),\n\t\t})).run();\n\n\t\treturn this;\n\t}\n\n\tunPinItem(item: Item): Stream\n\t{\n\t\tconst pinnedItem = this.getPinnedItem(item.getId());\n\t\tif(pinnedItem === item)\n\t\t{\n\t\t\tconst commonItem = this.getItem(pinnedItem.getId());\n\t\t\tif(commonItem)\n\t\t\t{\n\t\t\t\tcommonItem.isFixed = false;\n\t\t\t\tcommonItem.renderPin();\n\t\t\t}\n\t\t}\n\t\tif(pinnedItem && pinnedItem.isRendered())\n\t\t{\n\t\t\tQueue.add(new Hide({\n\t\t\t\tnode: pinnedItem.getContainer(),\n\t\t\t})).run();\n\t\t}\n\t\tthis.pinnedItems = this.pinnedItems.filter(filteredItem => filteredItem.getId() !== item.getId());\n\t}\n\n\tonItemDelete(item: Item)\n\t{\n\t\tthis.deleteItem(item);\n\t}\n\n\tdeleteItem(item: Item)\n\t{\n\t\tlet itemIndex = Stream.getItemIndexFromArray(this.items, item.getId());\n\t\tconst animations = [];\n\t\tif(itemIndex !== null)\n\t\t{\n\t\t\tif(item.isRendered())\n\t\t\t{\n\t\t\t\tconst animation = new Hide({\n\t\t\t\t\tnode: this.getItem(item.getId()).getContainer(),\n\t\t\t\t});\n\t\t\t\tanimations.push(animation);\n\t\t\t}\n\t\t\tthis.items.splice(itemIndex, 1);\n\t\t}\n\t\titemIndex = Stream.getItemIndexFromArray(this.pinnedItems, item.getId());\n\t\tif(itemIndex !== null)\n\t\t{\n\t\t\tif(item.isRendered())\n\t\t\t{\n\t\t\t\tconst animation = new Hide({\n\t\t\t\t\tnode: this.getPinnedItem(item.getId()).getContainer(),\n\t\t\t\t});\n\t\t\t\tanimations.push(animation);\n\t\t\t}\n\t\t\tthis.pinnedItems.splice(itemIndex, 1);\n\t\t}\n\t\titemIndex = Stream.getItemIndexFromArray(this.tasks, item.getId());\n\t\tif(itemIndex !== null)\n\t\t{\n\t\t\tlet isAddHideAnimation = true;\n\t\t\tif(item.completedData)\n\t\t\t{\n\t\t\t\tconst newItem = this.createItem(item.completedData);\n\t\t\t\tif(newItem)\n\t\t\t\t{\n\t\t\t\t\tif(!this.getItem(newItem.getId()))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.items.unshift(newItem);\n\t\t\t\t\t\tconst day = this.constructor.getDayFromDate(newItem.getCreatedTime());\n\t\t\t\t\t\tif(day)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif(!this.getDateSeparator(day))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconst separator = this.createDateSeparator(day);\n\t\t\t\t\t\t\t\tDom.prepend(separator, this.layout.itemsContainer);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tQueue.add(new TaskComplete({\n\t\t\t\t\t\t\t\titem: newItem,\n\t\t\t\t\t\t\t\ttask: item,\n\t\t\t\t\t\t\t\tinsertAfter: this.getDateSeparator(day),\n\t\t\t\t\t\t\t})).run();\n\n\t\t\t\t\t\t\tisAddHideAnimation = false;\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\tif(isAddHideAnimation)\n\t\t\t{\n\t\t\t\tanimations.push(new Hide({\n\t\t\t\t\tnode: this.getTask(item.getId()).getContainer(),\n\t\t\t\t}));\n\t\t\t}\n\t\t\tthis.tasks.splice(itemIndex, 1);\n\t\t}\n\t\tQueue.add(animations).run();\n\t}\n\n\tonError({message})\n\t{\n\t\tthis.showError(message);\n\t}\n\n\tshowError(message)\n\t{\n\t\tconsole.error(message);\n\t}\n\n\taddUsers(users: Object)\n\t{\n\t\tif(Type.isPlainObject(users))\n\t\t{\n\t\t\tif(!this.users)\n\t\t\t{\n\t\t\t\tthis.users = new Map();\n\t\t\t}\n\t\t\tObject.keys(users).forEach((userId) => {\n\t\t\t\tuserId = Text.toInteger(userId);\n\t\t\t\tif(userId > 0)\n\t\t\t\t{\n\t\t\t\t\tthis.users.set(userId, users[userId]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\taddAnimation(animation: Animation)\n\t{\n\t\tQueue.add(animation).run();\n\t}\n}","import {Stream} from './stream';\nimport {Item} from './item';\nimport {History} from './history';\nimport {StageChange} from './stagechange';\nimport {FieldsChange} from './fieldschange';\nimport {Editor} from './editor';\nimport {CommentEditor} from './commenteditor';\n\nimport 'ui.design-tokens';\nimport 'ui.fonts.opensans';\n\n/**\n * @memberOf BX.UI\n */\nexport const Timeline = {\n\tStream,\n\tItem,\n\tHistory,\n\tStageChange,\n\tEditor,\n\tCommentEditor,\n\tFieldsChange,\n};"],"names":["Item","params","EventEmitter","makeObservable","id","createdTimestamp","action","title","description","htmlDescription","textDescription","userId","isFixed","data","eventIds","Set","Type","isPlainObject","isSet","isString","isNumber","layout","timeFormat","nameFormat","users","Map","isLast","events","isPinned","Event","bind","renderPin","onPinClick","bindActionsButtonClick","button","getActionsButton","onActionsButtonClick","isRendered","getContainer","classList","add","remove","container","isDomNode","Text","toInteger","Date","time","BX","date","format","scope","getScope","renderContainer","updateLayout","clearLayout","appendChild","renderIcon","hasMenu","renderActionsButton","content","getContent","renderContent","afterRender","Tag","render","pin","renderDescription","header","renderHeader","renderMain","userData","link","fullName","photo","get","safeFullName","safe","main","getMain","icon","item","isFunction","emit","isSkipContainer","Object","keys","forEach","name","node","Dom","updateData","onError","onDelete","hasActions","getActions","length","contextMenuButton","getId","getActionsMenu","toggle","MenuManager","create","getActionsMenuId","bindElement","items","offsetTop","offsetLeft","angle","position","offset","onPopupShow","onContextMenuShow","onPopupClose","onContextMenuClose","destroy","isProgress","getLoader","show","isShown","hide","loader","Loader","target","History","isScopeAutomation","encode","getTitle","formatTime","getCreatedTime","renderHeaderUser","getUserId","Loc","getMessage","stageFrom","getStageFrom","stageTo","getStageTo","isArray","fields","getFields","list","field","push","StageChange","stageChange","renderStageChange","fieldsChange","renderFieldsChange","FieldsChange","Editor","getRandom","Error","clean","CommentEditor","commentId","setEventNamespace","replace","textarea","onFocus","getTextarea","visualEditorContainer","getVisualEditorContainer","buttonsContainer","renderSaveButton","renderCancelButton","getButtonsContainer","saveButton","save","getSaveButton","cancelButton","cancel","getCancelButton","renderTextarea","renderButtons","renderVisualEditorContainer","showVisualEditor","postForm","visualEditor","eventNode","style","display","Focus","loadVisualEditor","then","setTimeout","editorContent","oEditor","GetContent","message","Promise","resolve","reject","showEditorLoader","event","BaseEvent","getVisualEditorName","emitAsync","html","getData","Runtime","hideEditorLoader","LHEPostForm","BXHtmlEditor","getHandler","Get","editorLoader","append","isCancel","files","getAttachments","getEmptyMessageNotification","startProgress","reinit","stopProgress","hideVisualEditor","emptyMessagePopup","Popup","darkMode","autoHide","zIndex","closeByEsc","bindOptions","forceBindPosition","SetContent","ReInitIframe","attachments","arFiles","controllers","fileControllers","values","controller","includes","fileController","fileId","COLLAPSE_TEXT_MAX_LENGTH","Comment","props","isCollapsed","isAddExpandBlock","isContentLoaded","hasFiles","getMainDescription","renderExpandBlock","renderFilesContainer","ready","loadFilesContent","getFiles","renderMainDescription","mainDescription","onMainClick","expandBlock","renderExpandButton","getExpandBlock","expandButton","onExpandButtonClick","getExpandButton","commentEditor","subscribe","switchToViewMode","onSaveComment","editorContainer","getCommendEditor","getEditorContainer","editorButtons","getEditorButtons","filesContainer","getFilesContainer","renderEditorContainer","renderEditorButtons","refresh","text","onclick","actionEdit","actionDelete","close","switchToEditMode","MessageBox","confirm","comment","update","tagName","toLowerCase","hasClass","document","getSelection","toString","preventDefault","stopPropagation","maxHeight","scrollHeight","innerText","loadContent","Animation","onFinish","Drop","insertAfter","timeout","DEFAULT_TIMEOUT","createGhost","width","offsetWidth","top","getPosition","left","body","anchor","prepend","moveGhost","anchorPosition","startPosition","movingEvent","easing","duration","DURATION","start","height","finish","transition","makeEaseOut","transitions","quart","step","state","complete","animate","opacity","Pin","addClass","_cloneHeight","_minHeight","_sumPaddingContent","_anchorPosition","_difference","bottom","_deepHistoryLimit","clientHeight","_duration","Math","abs","Show","expand","fadeIn","overflow","EXPAND_DURATION","FADE_IN_DURATION","TaskComplete","task","taskNode","offsetHeight","taskHeight","removeClass","Hide","wrapperPosition","hideEvent","marginBottom","Queue","animation","animations","shift","promises","all","run","Stream","pinnedItems","tasks","editors","dateSeparators","initItemClasses","itemClasses","currentPage","pageSize","addUsers","createItem","addItem","initTasks","editor","set","bindEvents","progress","stream","onScrollHandler","throttle","onScroll","getItems","enableLoadOnScroll","Array","from","itemClassName","onItemPinClick","onItemDelete","getItemClassName","setUserData","setTimeFormat","getTimeFormat","setNameFormat","getPinnedItemFromItem","getItemFromArray","getPinnedItems","getTasks","size","renderEditors","pinnedItemsContainer","renderPinnedItems","tasksContainer","renderTasks","itemsContainer","renderItems","editorsTitle","editorsContent","isTitleActive","createFixedAnchor","pinnedItem","fixedAnchor","newTasks","deleteTasks","deleteItem","tasksTitle","getTasksTitle","renderTasksTitle","getTask","streamTask","getDataForUpdate","parentElement","removeChild","lastItem","setIsLast","day","constructor","getDayFromDate","getDateSeparator","dateSeparator","createDateSeparator","separator","renderDateSeparator","Reflection","getClass","getItem","unshift","datetimeFormat","dateFormat","convertBitrixFormat","trim","dateTimeFormat","window","unbind","disableLoadOnScroll","pos","getBoundingClientRect","documentElement","clone","getDateTimeFormat","pinItem","unPinItem","getPinnedItem","commonItem","filter","filteredItem","itemIndex","getItemIndexFromArray","splice","isAddHideAnimation","completedData","newItem","showError","console","error","result","key","isToday","Timeline"],"mappings":"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"}