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

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/bizproc/workflow/timeline/dist/timeline.bundle.js
/* eslint-disable */
this.BX = this.BX || {};
this.BX.Bizproc = this.BX.Bizproc || {};
(function (exports,bizproc_document,bizproc_types,ui_icons_b24,ui_textcrop,main_popup,main_date,bizproc_task,main_core) {
	'use strict';

	let _ = t => t,
	  _t,
	  _t2;
	var _errors = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("errors");
	class ErrorsView {
	  constructor(props) {
	    Object.defineProperty(this, _errors, {
	      writable: true,
	      value: []
	    });
	    if (main_core.Type.isArrayFilled(props.errors)) {
	      babelHelpers.classPrivateFieldLooseBase(this, _errors)[_errors] = props.errors;
	    }
	  }
	  render() {
	    return main_core.Tag.render(_t || (_t = _`
			<div class="bizproc-workflow-timeline_error-wrapper">
				<div class="bizproc-workflow-timeline_error-inner">
					${0}
					<div class="bizproc-workflow-timeline_error-img"></div>
				</div>
			</div>
		`), babelHelpers.classPrivateFieldLooseBase(this, _errors)[_errors].map(({
	      message
	    }) => main_core.Tag.render(_t2 || (_t2 = _`
						<p class="bizproc-workflow-timeline_error-text">${0}</p>
					`), main_core.Text.encode(message))));
	  }
	  renderTo(target) {
	    main_core.Dom.append(this.render(), target);
	  }
	}

	var _data = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("data");
	class TimelineTask {
	  constructor(data) {
	    Object.defineProperty(this, _data, {
	      writable: true,
	      value: {}
	    });
	    if (main_core.Type.isPlainObject(data)) {
	      babelHelpers.classPrivateFieldLooseBase(this, _data)[_data] = data;
	    }
	  }
	  canView() {
	    return main_core.Type.isBoolean(babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].canView) ? babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].canView : false;
	  }
	  get status() {
	    return new bizproc_task.TaskStatus(babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].status);
	  }
	  get id() {
	    return main_core.Type.isInteger(babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].id) ? babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].id : 0;
	  }
	  get name() {
	    return main_core.Type.isString(babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].name) ? babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].name : '';
	  }
	  get modified() {
	    return main_core.Type.isInteger(babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].modified) ? Math.max(babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].modified, 0) : 0;
	  }
	  get users() {
	    return main_core.Type.isArray(babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].users) ? babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].users : [];
	  }
	  get executionTime() {
	    return main_core.Type.isInteger(babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].executionTime) ? Math.max(babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].executionTime, 0) : null;
	  }
	  get approveType() {
	    return main_core.Type.isString(babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].approveType) ? babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].approveType : '';
	  }
	  get url() {
	    return main_core.Type.isStringFilled(babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].url) ? babelHelpers.classPrivateFieldLooseBase(this, _data)[_data].url : null;
	  }
	}

	let _$1 = t => t,
	  _t$1,
	  _t2$1,
	  _t3,
	  _t4,
	  _t5,
	  _t6,
	  _t7,
	  _t8;
	const TOO_LONG_PROCESS_DURATION = 60 * 60 * 24 * 3; // Three days
	var _task = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("task");
	var _userId = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("userId");
	var _taskNumber = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("taskNumber");
	var _dateFormat = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("dateFormat");
	var _dateFormatShort = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("dateFormatShort");
	var _users = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("users");
	var _renderContent = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderContent");
	var _renderButton = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderButton");
	var _renderStatus = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderStatus");
	var _getStatusName = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getStatusName");
	var _renderUsers = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderUsers");
	var _renderUser = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderUser");
	var _renderExecutionTime = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderExecutionTime");
	var _renderAccessDenied = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderAccessDenied");
	class TimelineTaskView {
	  constructor(props) {
	    Object.defineProperty(this, _renderAccessDenied, {
	      value: _renderAccessDenied2
	    });
	    Object.defineProperty(this, _renderExecutionTime, {
	      value: _renderExecutionTime2
	    });
	    Object.defineProperty(this, _renderUser, {
	      value: _renderUser2
	    });
	    Object.defineProperty(this, _renderUsers, {
	      value: _renderUsers2
	    });
	    Object.defineProperty(this, _getStatusName, {
	      value: _getStatusName2
	    });
	    Object.defineProperty(this, _renderStatus, {
	      value: _renderStatus2
	    });
	    Object.defineProperty(this, _renderButton, {
	      value: _renderButton2
	    });
	    Object.defineProperty(this, _renderContent, {
	      value: _renderContent2
	    });
	    Object.defineProperty(this, _task, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _userId, {
	      writable: true,
	      value: 0
	    });
	    Object.defineProperty(this, _taskNumber, {
	      writable: true,
	      value: null
	    });
	    Object.defineProperty(this, _dateFormat, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _dateFormatShort, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _users, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _task)[_task] = props.task;
	    babelHelpers.classPrivateFieldLooseBase(this, _dateFormat)[_dateFormat] = props.dateFormat;
	    babelHelpers.classPrivateFieldLooseBase(this, _dateFormatShort)[_dateFormatShort] = props.dateFormatShort;
	    babelHelpers.classPrivateFieldLooseBase(this, _users)[_users] = props.users;
	    if (main_core.Type.isNumber(props.taskNumber) && props.taskNumber > 0) {
	      babelHelpers.classPrivateFieldLooseBase(this, _taskNumber)[_taskNumber] = props.taskNumber;
	    }
	    if (main_core.Type.isNumber(props.userId) && props.userId > 0) {
	      babelHelpers.classPrivateFieldLooseBase(this, _userId)[_userId] = props.userId;
	    }
	  }
	  renderTo(target) {
	    main_core.Dom.append(this.render(), target);
	  }
	  render() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].canView() ? babelHelpers.classPrivateFieldLooseBase(this, _renderContent)[_renderContent]() : babelHelpers.classPrivateFieldLooseBase(this, _renderAccessDenied)[_renderAccessDenied]();
	  }
	}
	function _renderContent2() {
	  const isWaiting = babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].status.isWaiting();
	  return main_core.Tag.render(_t$1 || (_t$1 = _$1`
			<div class="bizproc-workflow-timeline-item ${0}">
				<div class="bizproc-workflow-timeline-item-inner">
					<div>
						<span class="bizproc-workflow-timeline-icon ${0}">
							${0}
						</span>
						<div class="bizproc-workflow-timeline-title">
							<span>${0}</span>
							${0}
						</div>
					</div>
					<div class="bizproc-workflow-timeline-subject">
						${0}
					</div>
					<div class="bizproc-workflow-timeline-content">
						${0}
						${0}
						${0}
					</div>
				</div>
			</div>
		`), isWaiting ? '--processing' : '', isWaiting ? '--processing' : '--success', isWaiting ? '' : babelHelpers.classPrivateFieldLooseBase(this, _taskNumber)[_taskNumber] || '', main_core.Text.encode(babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].name), babelHelpers.classPrivateFieldLooseBase(this, _renderButton)[_renderButton](), main_core.Text.encode(DurationFormatter.formatDate(babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].modified, babelHelpers.classPrivateFieldLooseBase(this, _dateFormat)[_dateFormat], babelHelpers.classPrivateFieldLooseBase(this, _dateFormatShort)[_dateFormatShort])), babelHelpers.classPrivateFieldLooseBase(this, _renderStatus)[_renderStatus](), babelHelpers.classPrivateFieldLooseBase(this, _renderUsers)[_renderUsers](), babelHelpers.classPrivateFieldLooseBase(this, _renderExecutionTime)[_renderExecutionTime]());
	}
	function _renderButton2() {
	  if (babelHelpers.classPrivateFieldLooseBase(this, _userId)[_userId] === 0 || !babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].url) {
	    return null;
	  }
	  const participant = babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].users.find(user => user.id === babelHelpers.classPrivateFieldLooseBase(this, _userId)[_userId]);
	  if (main_core.Type.isUndefined(participant)) {
	    return null;
	  }
	  const isWaiting = new bizproc_task.UserStatus(participant.status).isWaiting();
	  return main_core.Tag.render(_t2$1 || (_t2$1 = _$1`
			<a
				class="
					bizproc-workflow-timeline-task-link
					bizproc-workflow-timeline-task-link-${0}
				"
				href="${0}"
			>
				${0}
			</a>
		`), isWaiting ? 'blue' : 'gray', main_core.Text.encode(babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].url || new main_core.Uri(`/company/personal/bizproc/${babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].id}/`).toString()), main_core.Text.encode(isWaiting ? main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_BUTTON_PROCEED') : main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_BUTTON_SEE')));
	}
	function _renderStatus2() {
	  let message = main_core.Text.encode(babelHelpers.classPrivateFieldLooseBase(this, _getStatusName)[_getStatusName](babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].status, babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].approveType, babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].users.length));
	  if (babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].status.isWaiting() && babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].approveType === 'vote') {
	    let votedCount = 0;
	    for (const user of babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].users) {
	      if (!new bizproc_task.TaskStatus(user.status).isWaiting()) {
	        votedCount++;
	      }
	    }
	    message = main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_VOTED', {
	      '#VOTED#': votedCount,
	      '#TOTAL#': babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].users.length
	    });
	  }
	  return main_core.Tag.render(_t3 || (_t3 = _$1`<div class="bizproc-workflow-timeline-caption">${0}</div>`), message);
	}
	function _getStatusName2(taskStatus, taskApproveType, usersCount) {
	  if (taskStatus.isYes() || taskStatus.isOk()) {
	    return main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PERFORMED');
	  }
	  if (taskStatus.isNo() || taskStatus.isCancel()) {
	    return main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_DECLINED');
	  }
	  if (taskStatus.isWaiting()) {
	    if (usersCount === 1) {
	      return main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PERFORMING');
	    }
	    let message = '';
	    switch (taskApproveType) {
	      case 'all':
	        message = main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PERFORMING_ALL');
	        break;
	      case 'any':
	        message = main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PERFORMING_ANY');
	        break;
	      case 'vote':
	        message = main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PERFORMING_ALL');
	        break;
	      default:
	        message = main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PERFORMING');
	        break;
	    }
	    return message;
	  }
	  return taskStatus.name;
	}
	function _renderUsers2() {
	  const showVoteResult = babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].users.length > 1;
	  return main_core.Tag.render(_t4 || (_t4 = _$1`
			<div class="bizproc-workflow-timeline-user-list">
				${0}
			</div>
		`), Object.values(babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].users).map(user => babelHelpers.classPrivateFieldLooseBase(this, _renderUser)[_renderUser](user, showVoteResult)));
	}
	function _renderUser2(userData, showVoteResult) {
	  const user = babelHelpers.classPrivateFieldLooseBase(this, _users)[_users].get(userData.id);
	  if (!user) {
	    return null;
	  }
	  const status = new bizproc_task.TaskStatus(userData.status);
	  let voteClass = '';
	  if (showVoteResult) {
	    if (status.isYes() || status.isOk()) {
	      voteClass = '--voted-up';
	    }
	    if (status.isNo()) {
	      voteClass = '--voted-down';
	    }
	  }
	  let avatar = '<i></i>';
	  if (main_core.Type.isString(user.avatarSize100)) {
	    avatar = `<i style="background-image: url('${encodeURI(main_core.Text.encode(user.avatarSize100))}')"></i>`;
	  }
	  return main_core.Tag.render(_t5 || (_t5 = _$1`
			<div class="bizproc-workflow-timeline-user ${0}">
				<div class="bizproc-workflow-timeline-userlogo ui-icon ui-icon-common-user">
					${0}
				</div>
				<div class="bizproc-workflow-timeline-user-block">
					<a class="bizproc-workflow-timeline-link" href="${0}">${0}</a>
					<div class="bizproc-workflow-timeline-user-pos" title="${0}">
						${0}
					</div>
				</div>
			</div>
		`), voteClass, avatar, user.link, main_core.Text.encode(user.fullName), main_core.Text.encode(user.workPosition || ''), main_core.Text.encode(user.workPosition || ''));
	}
	function _renderExecutionTime2() {
	  const executionTime = babelHelpers.classPrivateFieldLooseBase(this, _task)[_task].executionTime;
	  if (main_core.Type.isNil(executionTime)) {
	    return null;
	  }
	  const useHint = executionTime >= TOO_LONG_PROCESS_DURATION;
	  const hint = main_core.Tag.render(_t6 || (_t6 = _$1`
			<span
				data-hint="${0}"
			></span>
		`), main_core.Text.encode(main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_TIME_LIMIT_EXCEEDED')));
	  const notice = main_core.Tag.render(_t7 || (_t7 = _$1`
			<div class="bizproc-workflow-timeline-notice">
				<div class="bizproc-workflow-timeline-subject">
					${0}
				</div>
				<span class="bizproc-workflow-timeline-text">
					${0}
				</span>
				${0}
			</div>
		`), main_core.Text.encode(main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_EXECUTION_TIME')), main_core.Text.encode(DurationFormatter.formatTimeInterval(executionTime, 2)), useHint ? hint : null);
	  if (useHint) {
	    BX.UI.Hint.init(notice);
	  }
	  return notice;
	}
	function _renderAccessDenied2() {
	  return main_core.Tag.render(_t8 || (_t8 = _$1`
			<div class="bizproc-workflow-timeline-item --tech">
				<div class="bizproc-workflow-timeline-item-inner">
					<div>
						<span class="bizproc-workflow-timeline-icon"></span>
						<div class="bizproc-workflow-timeline-title">
							${0}
						</div>
					</div>
					<div class="bizproc-workflow-timeline-subject">
						${0}
					</div>
				</div>
			</div>
		`), main_core.Text.encode(main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_NO_RIGHTS_TO_VIEW')), main_core.Text.encode(main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_NO_RIGHTS_TO_VIEW_TIP')));
	}

	let _$2 = t => t,
	  _t$2,
	  _t2$2,
	  _t3$1,
	  _t4$1,
	  _t5$1,
	  _t6$1,
	  _t7$1,
	  _t8$1,
	  _t9,
	  _t10,
	  _t11,
	  _t12,
	  _t13,
	  _t14,
	  _t15,
	  _t16,
	  _t17,
	  _t18,
	  _t19,
	  _t20;
	var _limits = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("limits");
	var _getFormatString = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getFormatString");
	var _getMultiplierByFormat = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getMultiplierByFormat");
	class DurationFormatter {
	  static formatTimestamp(timestamp) {
	    return main_date.DateTimeFormat.format(babelHelpers.classPrivateFieldLooseBase(this, _getFormatString)[_getFormatString](Date.now() / 1000 - timestamp), timestamp);
	  }
	  static formatTimeInterval(interval, values = 1) {
	    if (main_core.Type.isNil(interval)) {
	      return main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_AVERAGE_PROCESS_TIME_UNKNOWN');
	    }
	    if (interval === 0) {
	      return main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_ZERO_SECOND_INTERVAL');
	    }
	    let result = '';
	    let remainder = interval;
	    for (let i = 0; i < values; i++) {
	      const format = babelHelpers.classPrivateFieldLooseBase(this, _getFormatString)[_getFormatString](remainder);
	      // ignore seconds if we already have result
	      if (result.length > 0 && format === 'sdiff') {
	        return result;
	      }
	      const multiplier = babelHelpers.classPrivateFieldLooseBase(this, _getMultiplierByFormat)[_getMultiplierByFormat](format);
	      result += main_date.DateTimeFormat.format(format, 0, remainder);
	      result += ' ';
	      if (multiplier > 0) {
	        remainder %= multiplier;
	        if (remainder === 0) {
	          return result;
	        }
	      }
	    }
	    return result;
	  }
	  static formatDate(timestamp, format, formatShort) {
	    if (formatShort && main_date.DateTimeFormat.format('Y', timestamp) === main_date.DateTimeFormat.format('Y', Date.now() / 1000)) {
	      return main_date.DateTimeFormat.format(formatShort, timestamp);
	    }
	    return main_date.DateTimeFormat.format(format, timestamp);
	  }
	}
	function _getFormatString2(seconds) {
	  for (const limit of babelHelpers.classPrivateFieldLooseBase(this, _limits)[_limits]) {
	    if (seconds >= limit[0]) {
	      return limit[1];
	    }
	  }
	  return 'sdiff';
	}
	function _getMultiplierByFormat2(format) {
	  for (const limit of babelHelpers.classPrivateFieldLooseBase(this, _limits)[_limits]) {
	    if (format === limit[1]) {
	      return limit[0];
	    }
	  }
	  return 0;
	}
	Object.defineProperty(DurationFormatter, _getMultiplierByFormat, {
	  value: _getMultiplierByFormat2
	});
	Object.defineProperty(DurationFormatter, _getFormatString, {
	  value: _getFormatString2
	});
	Object.defineProperty(DurationFormatter, _limits, {
	  writable: true,
	  value: [[3600 * 24 * 365, 'Ydiff'], [3600 * 24 * 31, 'mdiff'], [3600 * 24, 'ddiff'], [3600, 'Hdiff'], [60, 'idiff']]
	});
	var _workflowId = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("workflowId");
	var _data$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("data");
	var _isLoaded = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isLoaded");
	var _errors$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("errors");
	var _container = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("container");
	var _biPopup = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("biPopup");
	var _dateFormat$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("dateFormat");
	var _dateFormatShort$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("dateFormatShort");
	var _efficiencyPopup = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("efficiencyPopup");
	var _loadTimeline = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("loadTimeline");
	var _setDataFromResponse = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setDataFromResponse");
	var _renderItemTitle = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderItemTitle");
	var _renderSubject = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderSubject");
	var _renderProceedTaskButton = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderProceedTaskButton");
	var _renderUser$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderUser");
	var _renderDoc = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderDoc");
	var _renderCaption = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderCaption");
	var _renderNotice = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderNotice");
	var _renderStatus$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderStatus");
	var _renderMore = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderMore");
	var _renderContent$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderContent");
	var _renderItem = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderItem");
	var _renderItemsList = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderItemsList");
	var _renderFirstBlock = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderFirstBlock");
	var _renderContainer = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderContainer");
	var _textCrop = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("textCrop");
	var _createEfficiencyPopup = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("createEfficiencyPopup");
	var _getEfficiencyData = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getEfficiencyData");
	var _renderEfficiencyInlineContent = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderEfficiencyInlineContent");
	var _renderEfficiencyPopupContent = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderEfficiencyPopupContent");
	var _createBiButton = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("createBiButton");
	var _createBiPopup = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("createBiPopup");
	var _getBiMenuTopOffset = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getBiMenuTopOffset");
	var _showBiMenu = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("showBiMenu");
	var _renderBiPopupContent = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderBiPopupContent");
	var _renderLoadingStub = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("renderLoadingStub");
	var _hasErrors = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("hasErrors");
	class Timeline {
	  // #taskId: number;

	  constructor(options, config) {
	    Object.defineProperty(this, _hasErrors, {
	      value: _hasErrors2
	    });
	    Object.defineProperty(this, _renderLoadingStub, {
	      value: _renderLoadingStub2
	    });
	    Object.defineProperty(this, _renderBiPopupContent, {
	      value: _renderBiPopupContent2
	    });
	    Object.defineProperty(this, _showBiMenu, {
	      value: _showBiMenu2
	    });
	    Object.defineProperty(this, _getBiMenuTopOffset, {
	      value: _getBiMenuTopOffset2
	    });
	    Object.defineProperty(this, _createBiPopup, {
	      value: _createBiPopup2
	    });
	    Object.defineProperty(this, _createBiButton, {
	      value: _createBiButton2
	    });
	    Object.defineProperty(this, _renderEfficiencyPopupContent, {
	      value: _renderEfficiencyPopupContent2
	    });
	    Object.defineProperty(this, _renderEfficiencyInlineContent, {
	      value: _renderEfficiencyInlineContent2
	    });
	    Object.defineProperty(this, _getEfficiencyData, {
	      value: _getEfficiencyData2
	    });
	    Object.defineProperty(this, _createEfficiencyPopup, {
	      value: _createEfficiencyPopup2
	    });
	    Object.defineProperty(this, _textCrop, {
	      value: _textCrop2
	    });
	    Object.defineProperty(this, _renderContainer, {
	      value: _renderContainer2
	    });
	    Object.defineProperty(this, _renderFirstBlock, {
	      value: _renderFirstBlock2
	    });
	    Object.defineProperty(this, _renderItemsList, {
	      value: _renderItemsList2
	    });
	    Object.defineProperty(this, _renderItem, {
	      value: _renderItem2
	    });
	    Object.defineProperty(this, _renderContent$1, {
	      value: _renderContent2$1
	    });
	    Object.defineProperty(this, _renderMore, {
	      value: _renderMore2
	    });
	    Object.defineProperty(this, _renderStatus$1, {
	      value: _renderStatus2$1
	    });
	    Object.defineProperty(this, _renderNotice, {
	      value: _renderNotice2
	    });
	    Object.defineProperty(this, _renderCaption, {
	      value: _renderCaption2
	    });
	    Object.defineProperty(this, _renderDoc, {
	      value: _renderDoc2
	    });
	    Object.defineProperty(this, _renderUser$1, {
	      value: _renderUser2$1
	    });
	    Object.defineProperty(this, _renderProceedTaskButton, {
	      value: _renderProceedTaskButton2
	    });
	    Object.defineProperty(this, _renderSubject, {
	      value: _renderSubject2
	    });
	    Object.defineProperty(this, _renderItemTitle, {
	      value: _renderItemTitle2
	    });
	    Object.defineProperty(this, _setDataFromResponse, {
	      value: _setDataFromResponse2
	    });
	    Object.defineProperty(this, _loadTimeline, {
	      value: _loadTimeline2
	    });
	    Object.defineProperty(this, _workflowId, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _data$1, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _isLoaded, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _errors$1, {
	      writable: true,
	      value: []
	    });
	    Object.defineProperty(this, _container, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _biPopup, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _dateFormat$1, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _dateFormatShort$1, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _efficiencyPopup, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _container)[_container] = babelHelpers.classPrivateFieldLooseBase(this, _renderContainer)[_renderContainer]();
	    setTimeout(() => {
	      babelHelpers.classPrivateFieldLooseBase(this, _textCrop)[_textCrop]();
	    }, 500);
	    if (main_core.Type.isPlainObject(options)) {
	      babelHelpers.classPrivateFieldLooseBase(this, _workflowId)[_workflowId] = options.workflowId;
	      // this.#taskId = options.taskId;
	      babelHelpers.classPrivateFieldLooseBase(this, _isLoaded)[_isLoaded] = false;
	      babelHelpers.classPrivateFieldLooseBase(this, _loadTimeline)[_loadTimeline]();
	    }
	    if (main_core.Type.isPlainObject(config)) {
	      babelHelpers.classPrivateFieldLooseBase(this, _dateFormat$1)[_dateFormat$1] = `${config.dateFormat || 'j F Y'} ${config.timeFormat || 'H:i'}`;
	      babelHelpers.classPrivateFieldLooseBase(this, _dateFormatShort$1)[_dateFormatShort$1] = `${config.dateFormatShort || 'j F'} ${config.timeFormat || 'H:i'}`;
	    }
	  }
	  static open(options) {
	    main_core.Runtime.loadExtension('sidepanel').then(() => {
	      BX.SidePanel.Instance.open(main_core.Uri.addParam('/bitrix/components/bitrix/bizproc.workflow.timeline.slider/index.php', main_core.Type.isPlainObject(options) ? options : {}), {
	        width: 950,
	        allowChangeHistory: false,
	        cacheable: false,
	        loader: '/bitrix/js/bizproc/workflow/timeline/img/skeleton.svg',
	        printable: true
	      });
	    }).catch(response => console.error(response.errors));
	  }
	  render() {
	    main_core.Dom.clean(babelHelpers.classPrivateFieldLooseBase(this, _container)[_container]);
	    if (babelHelpers.classPrivateFieldLooseBase(this, _hasErrors)[_hasErrors]()) {
	      const errorsView = new ErrorsView({
	        errors: babelHelpers.classPrivateFieldLooseBase(this, _errors$1)[_errors$1]
	      });
	      errorsView.renderTo(babelHelpers.classPrivateFieldLooseBase(this, _container)[_container]);
	      return babelHelpers.classPrivateFieldLooseBase(this, _container)[_container];
	    }
	    if (!babelHelpers.classPrivateFieldLooseBase(this, _isLoaded)[_isLoaded]) {
	      main_core.Dom.append(babelHelpers.classPrivateFieldLooseBase(this, _renderLoadingStub)[_renderLoadingStub](), babelHelpers.classPrivateFieldLooseBase(this, _container)[_container]);
	    }
	    if (main_core.Type.isPlainObject(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1])) {
	      main_core.Dom.replace(babelHelpers.classPrivateFieldLooseBase(this, _container)[_container], babelHelpers.classPrivateFieldLooseBase(this, _renderContainer)[_renderContainer]());
	      babelHelpers.classPrivateFieldLooseBase(this, _createEfficiencyPopup)[_createEfficiencyPopup]().show();
	      if (babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].biMenu) {
	        this.showBiMenus(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].biMenu);
	      }
	    }
	    return babelHelpers.classPrivateFieldLooseBase(this, _container)[_container];
	  }
	  showBiMenus(menu) {
	    babelHelpers.classPrivateFieldLooseBase(this, _createBiButton)[_createBiButton](menu);
	    babelHelpers.classPrivateFieldLooseBase(this, _createBiPopup)[_createBiPopup](menu).show();
	  }
	}
	function _loadTimeline2() {
	  main_core.ajax.runAction('bizproc.workflow.getTimeline', {
	    data: {
	      workflowId: babelHelpers.classPrivateFieldLooseBase(this, _workflowId)[_workflowId]
	    }
	  }).then(response => {
	    babelHelpers.classPrivateFieldLooseBase(this, _setDataFromResponse)[_setDataFromResponse](response);
	    babelHelpers.classPrivateFieldLooseBase(this, _isLoaded)[_isLoaded] = true;
	    this.render();
	  }).catch(response => {
	    babelHelpers.classPrivateFieldLooseBase(this, _setDataFromResponse)[_setDataFromResponse](response);
	    babelHelpers.classPrivateFieldLooseBase(this, _isLoaded)[_isLoaded] = true;
	    this.render();
	  });
	}
	function _setDataFromResponse2(response) {
	  if (main_core.Type.isPlainObject(response)) {
	    const getString = (value, defaultValue = '') => main_core.Type.isString(value) ? value : defaultValue;
	    const getArray = (value, defaultValue = []) => main_core.Type.isArray(value) ? value : defaultValue;
	    const getBool = (value, defaultValue = false) => main_core.Type.isBoolean(value) ? value : defaultValue;
	    const getInteger = (value, defaultValue = 0) => main_core.Type.isInteger(value) ? value : defaultValue;
	    if (main_core.Type.isPlainObject(response.data)) {
	      babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1] = {
	        document: new bizproc_document.DocumentId({
	          documentId: getArray(response.data.documentType),
	          entityName: getString(response.data.entityName),
	          documentName: getString(response.data.documentName),
	          documentUrl: getString(response.data.documentUrl),
	          moduleName: getString(response.data.moduleName)
	        }),
	        isWorkflowRunning: getBool(response.data.isWorkflowRunning),
	        timeToStart: getInteger(response.data.timeToStart, null),
	        executionTime: getInteger(response.data.executionTime, null),
	        started: getInteger(response.data.started, null),
	        startedBy: getInteger(response.data.startedBy),
	        tasks: getArray(response.data.tasks).map(taskData => new TimelineTask(taskData)),
	        users: new Map(),
	        stats: {
	          averageDuration: getInteger(response.data.stats.averageDuration, null),
	          efficiency: getString(response.data.stats.efficiency)
	        },
	        biMenu: getArray(response.data.biMenu, null)
	      };
	      for (const user of getArray(response.data.users)) {
	        babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].users.set(main_core.Text.toInteger(user.id), user);
	      }
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _errors$1)[_errors$1] = getArray(response.errors);
	  }
	}
	function _renderItemTitle2(title, iconClass, iconText, crop) {
	  const iconClassValue = main_core.Type.isString(iconClass) ? ` ${iconClass}` : '';
	  const iconTextValue = main_core.Type.isString(iconText) ? iconText : '';
	  const cropValue = crop ? ' data-crop="crop"' : '';
	  return main_core.Tag.render(_t$2 || (_t$2 = _$2`
			<div>
				<span class="bizproc-workflow-timeline-icon${0}">${0}</span>
				<div class="bizproc-workflow-timeline-title"${0}>${0}</div>
			</div>
		`), iconClassValue, iconTextValue, cropValue, main_core.Text.encode(title));
	}
	function _renderSubject2(subject) {
	  return main_core.Tag.render(_t2$2 || (_t2$2 = _$2`
			<div class="bizproc-workflow-timeline-subject">${0}</div>
		`), main_core.Text.encode(subject));
	}
	function _renderProceedTaskButton2(task) {
	  const uri = task.url || new main_core.Uri(`/company/personal/bizproc/${task.id}/`).toString();
	  return main_core.Tag.render(_t3$1 || (_t3$1 = _$2`
			<div class="task-button --hidden">
				<a class="ui-btn ui-btn-xs ui-btn-primary ui-btn-round" href="${0}">
					${0}
				</a>
			</div>
		`), main_core.Text.encode(uri), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_BUTTON_PROCEED'));
	}
	function _renderUser2$1(userId, userData = null, task = null) {
	  const user = babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].users.get(userId || userData.id);
	  let userClass = '';
	  let isWaiting = false;
	  if (userData) {
	    const status = new bizproc_task.TaskStatus(userData.status);
	    if (status.isYes() || status.isOk()) {
	      userClass = ' --voted-up';
	    }
	    if (status.isNo()) {
	      userClass = ' --voted-down';
	    }
	    if (status.isWaiting()) {
	      isWaiting = true;
	    }
	  }
	  const position = main_core.Type.isString(user.workPosition) ? `<div class="bizproc-workflow-timeline-user-pos">${main_core.Text.encode(user.workPosition)}</div>` : '';
	  let avatar = '<i></i>';
	  if (main_core.Type.isString(user.avatarSize100)) {
	    avatar = `<i style="background-image: url('${encodeURI(user.avatarSize100)}')"></i>`;
	  }
	  const button = task != null && task.id && isWaiting ? babelHelpers.classPrivateFieldLooseBase(this, _renderProceedTaskButton)[_renderProceedTaskButton](task) : '';
	  return main_core.Tag.render(_t4$1 || (_t4$1 = _$2`
			<div class="bizproc-workflow-timeline-user${0}">
				<div class="bizproc-workflow-timeline-userlogo ui-icon ui-icon-common-user">
					${0}
				</div>
				<div class="bizproc-workflow-timeline-user-block">
					<a class="bizproc-workflow-timeline-link" href="${0}">${0}</a>
					${0}
				</div>
				${0}
			</div>
		`), userClass, avatar, user.link, main_core.Text.encode(user.fullName), position, button);
	}
	function _renderDoc2(name, link, type, iconClass) {
	  return main_core.Tag.render(_t5$1 || (_t5$1 = _$2`
			<div class="bizproc-workflow-timeline-doc">
				${0}
				<div class="bizproc-workflow-timeline-type">
					<span class="ui-icon-set ${0}"></span>
					<span class="bizproc-workflow-timeline-type-text">${0}</span>
				</div>
				<a class="bizproc-workflow-timeline-link" href="${0}" target="_top">${0}</a>
			</div>
		`), babelHelpers.classPrivateFieldLooseBase(this, _renderCaption)[_renderCaption](main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_START_DOC')), iconClass, type, link, main_core.Text.encode(name));
	}
	function _renderCaption2(caption) {
	  return main_core.Tag.render(_t6$1 || (_t6$1 = _$2`
			<div class="bizproc-workflow-timeline-caption">${0}</div>
		`), caption);
	}
	function _renderNotice2(subject, text) {
	  return main_core.Tag.render(_t7$1 || (_t7$1 = _$2`
			<div class="bizproc-workflow-timeline-notice">
				<div class="bizproc-workflow-timeline-subject">${0}</div>
				<span class="bizproc-workflow-timeline-text">${0}</span>
			</div>
		`), main_core.Text.encode(subject), main_core.Text.encode(text));
	}
	function _renderStatus2$1(text, statusClass) {
	  const statusClassValue = main_core.Type.isString(statusClass) ? ` ${statusClass}` : '';
	  return main_core.Tag.render(_t8$1 || (_t8$1 = _$2`
			<div class="bizproc-workflow-timeline-status${0}">${0}</div>
		`), statusClassValue, main_core.Text.encode(text));
	}
	function _renderMore2() {
	  return main_core.Tag.render(_t9 || (_t9 = _$2`
			<div class="bizproc-workflow-timeline-item --more">
				<div class="bizproc-workflow-timeline-item-inner">
					<span class="bizproc-workflow-timeline-icon"></span>
					<button class="ui-btn ui-btn-light-border ui-btn-xs" type="button" onclick="expandMore(event)">
						<span class="ui-btn-text">
							${0}
						</span>
					</button>
					<script type="text/javascript">
						function expandMore(event)
						{
							const moreItemBlock = event.target.closest('.--more');
							const hiddenBlocks = document.querySelectorAll('.bizproc-workflow-timeline-item.--hidden:not(.--efficiency)');
							BX.Dom.addClass(moreItemBlock, '--hidden');
							hiddenBlocks.forEach((hiddenBlock) => BX.Dom.removeClass(hiddenBlock, '--hidden'));
						}
					</script>
				</div>
			</div>
		`), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_MORE_TASKS'));
	}
	function _renderContent2$1(children) {
	  return main_core.Tag.render(_t10 || (_t10 = _$2`
			<div class="bizproc-workflow-timeline-content">
				${0}
			</div>
		`), children);
	}
	function _renderItem2(children, itemClass, efficiencyClass) {
	  const itemClassValue = main_core.Type.isString(itemClass) ? ` ${itemClass}` : '';
	  const efficiencyClassValue = main_core.Type.isString(efficiencyClass) ? ` data-efficiency-class="${efficiencyClass}"` : '';
	  return main_core.Tag.render(_t11 || (_t11 = _$2`
			<div class="bizproc-workflow-timeline-item${0}"${0}>
				<div class="bizproc-workflow-timeline-item-inner">
					${0}
				</div>
			</div>
		`), itemClassValue, efficiencyClassValue, children);
	}
	function _renderItemsList2(items) {
	  return main_core.Tag.render(_t12 || (_t12 = _$2`
			<div class="bizproc-workflow-timeline-wrapper">
				<div class="bizproc-workflow-timeline-inner">
					<div class="bizproc-workflow-timeline-list">
						${0}
					</div>
					<script type="text/javascript">
						(function() {
							const buttons = document.querySelectorAll('.task-button.--hidden');
							const showButtons = buttons.length > 1;
							buttons.forEach(function (button) {
								BX.Dom.insertBefore(
									button.closest('.bizproc-workflow-timeline-user'),
									button.closest('.bizproc-workflow-timeline-user-list').firstChild
								);
								if (showButtons)
								{
									BX.Dom.removeClass(button, '--hidden')
								}
							});
						})();
					</script>
				</div>
			</div>
		`), items);
	}
	function _renderFirstBlock2() {
	  const content = [];
	  if (babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].startedBy) {
	    content.push(babelHelpers.classPrivateFieldLooseBase(this, _renderCaption)[_renderCaption](main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_FROM')), babelHelpers.classPrivateFieldLooseBase(this, _renderUser$1)[_renderUser$1](babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].startedBy));
	  }
	  content.push(babelHelpers.classPrivateFieldLooseBase(this, _renderDoc)[_renderDoc](babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].document.name, babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].document.url, babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].document.moduleName, '--file-2'));
	  if (!main_core.Type.isNil(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].timeToStart)) {
	    content.push(babelHelpers.classPrivateFieldLooseBase(this, _renderNotice)[_renderNotice](main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_EXECUTION_TIME'), DurationFormatter.formatTimeInterval(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].timeToStart, 2)));
	  }
	  return babelHelpers.classPrivateFieldLooseBase(this, _renderItem)[_renderItem]([babelHelpers.classPrivateFieldLooseBase(this, _renderItemTitle)[_renderItemTitle](babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].document.entityName, '--success', '1'), babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].started && babelHelpers.classPrivateFieldLooseBase(this, _renderSubject)[_renderSubject](DurationFormatter.formatDate(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].started, babelHelpers.classPrivateFieldLooseBase(this, _dateFormat$1)[_dateFormat$1], babelHelpers.classPrivateFieldLooseBase(this, _dateFormatShort$1)[_dateFormatShort$1])), babelHelpers.classPrivateFieldLooseBase(this, _renderContent$1)[_renderContent$1](content)], '--selected');
	}
	function _renderContainer2() {
	  const items = [];
	  let efficiencyClass = '';
	  let isWaiting = false;
	  if (babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1]) {
	    let task = null;
	    items.push(babelHelpers.classPrivateFieldLooseBase(this, _renderFirstBlock)[_renderFirstBlock]());
	    let taskNumber = 1;
	    let hasHidden = babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].tasks[0] ? !babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].tasks[0].status.isWaiting() : true;
	    for (const taskIndex of Object.keys(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].tasks)) {
	      task = babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].tasks[taskIndex];
	      isWaiting = task.status.isWaiting();
	      if (!isWaiting) {
	        ++taskNumber;
	      }
	      const taskView = new TimelineTaskView({
	        task,
	        userId: main_core.Text.toInteger(main_core.Loc.getMessage('USER_ID')),
	        dateFormat: babelHelpers.classPrivateFieldLooseBase(this, _dateFormat$1)[_dateFormat$1],
	        dateFormatShort: babelHelpers.classPrivateFieldLooseBase(this, _dateFormatShort$1)[_dateFormatShort$1],
	        taskNumber: isWaiting ? null : taskNumber,
	        users: babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].users
	      });
	      const node = taskView.render();
	      if (!isWaiting && hasHidden) {
	        main_core.Dom.addClass(node, '--hidden');
	      }
	      if (isWaiting && hasHidden) {
	        items.push(babelHelpers.classPrivateFieldLooseBase(this, _renderMore)[_renderMore]());
	        hasHidden = false;
	      }
	      items.push(node);
	    }
	    if (hasHidden && babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].tasks[0]) {
	      items.push(babelHelpers.classPrivateFieldLooseBase(this, _renderMore)[_renderMore]());
	    }
	    if (babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].isWorkflowRunning) {
	      if (isWaiting) {
	        items.push(babelHelpers.classPrivateFieldLooseBase(this, _renderItem)[_renderItem]([babelHelpers.classPrivateFieldLooseBase(this, _renderItemTitle)[_renderItemTitle](main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_IN_PROGRESS')), babelHelpers.classPrivateFieldLooseBase(this, _renderSubject)[_renderSubject](main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_IN_PROGRESS_TIP'))], '--tech --previous-item'));
	      } else {
	        items.push(babelHelpers.classPrivateFieldLooseBase(this, _renderItem)[_renderItem]([babelHelpers.classPrivateFieldLooseBase(this, _renderItemTitle)[_renderItemTitle](main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_IN_PROGRESS_INTERMEDIATE')), babelHelpers.classPrivateFieldLooseBase(this, _renderSubject)[_renderSubject](main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_IN_PROGRESS_INTERMEDIATE_TIP'))], '--tech --previous-item'));
	      }
	    } else {
	      const isOk = !task || task.status.isOk() || task.status.isYes();
	      const content = [babelHelpers.classPrivateFieldLooseBase(this, _renderCaption)[_renderCaption](main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PROCESS_FINISHED'))];
	      if (babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].startedBy) {
	        content.push(isOk ? babelHelpers.classPrivateFieldLooseBase(this, _renderStatus$1)[_renderStatus$1](main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_APPROVED_FOR')) : babelHelpers.classPrivateFieldLooseBase(this, _renderStatus$1)[_renderStatus$1](main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_DECLINED'), '--failure'), babelHelpers.classPrivateFieldLooseBase(this, _renderUser$1)[_renderUser$1](babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].startedBy));
	      }
	      content.push(babelHelpers.classPrivateFieldLooseBase(this, _renderNotice)[_renderNotice](main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PROCESS_EXECUTED'), DurationFormatter.formatTimeInterval(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].executionTime)));
	      efficiencyClass = isOk ? '--success' : '--declined';
	      items.push(babelHelpers.classPrivateFieldLooseBase(this, _renderItem)[_renderItem]([babelHelpers.classPrivateFieldLooseBase(this, _renderItemTitle)[_renderItemTitle](babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].document.entityName, isOk ? '--success' : null), babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].started && babelHelpers.classPrivateFieldLooseBase(this, _renderSubject)[_renderSubject](DurationFormatter.formatDate(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].started + babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].executionTime, babelHelpers.classPrivateFieldLooseBase(this, _dateFormat$1)[_dateFormat$1], babelHelpers.classPrivateFieldLooseBase(this, _dateFormatShort$1)[_dateFormatShort$1])), babelHelpers.classPrivateFieldLooseBase(this, _renderContent$1)[_renderContent$1](content)], isOk ? '--success --previous' : '--declined --selected --previous', efficiencyClass), babelHelpers.classPrivateFieldLooseBase(this, _renderEfficiencyInlineContent)[_renderEfficiencyInlineContent]());
	    }
	  }
	  return babelHelpers.classPrivateFieldLooseBase(this, _renderItemsList)[_renderItemsList](items);
	}
	function _textCrop2() {
	  const textCropNodes = document.querySelectorAll('[data-crop="crop"]');
	  for (const textCropNode of textCropNodes) {
	    const text = new ui_textcrop.TextCrop({
	      rows: 2,
	      target: textCropNode
	    });
	    text.init();
	  }
	}
	function _createEfficiencyPopup2() {
	  babelHelpers.classPrivateFieldLooseBase(this, _efficiencyPopup)[_efficiencyPopup] = new main_popup.Popup({
	    width: 403,
	    minHeight: 345,
	    closeIcon: true,
	    content: babelHelpers.classPrivateFieldLooseBase(this, _renderEfficiencyPopupContent)[_renderEfficiencyPopupContent](),
	    bindElement: {
	      left: 555,
	      top: 130
	    },
	    padding: 26,
	    borderRadius: '18px',
	    className: '--bizproc-timeline-popup',
	    events: {
	      onPopupClose: () => {
	        let inlineEfficiencyPrev = document.querySelector('.--previous-item');
	        if (!inlineEfficiencyPrev) {
	          inlineEfficiencyPrev = document.querySelector('.bizproc-workflow-timeline-item.--processing');
	        }
	        if (!inlineEfficiencyPrev) {
	          return;
	        }
	        BX.Dom.addClass(inlineEfficiencyPrev, '--previous');
	        let efficiencyInlineClass = inlineEfficiencyPrev.getAttribute('data-efficiency-class');
	        if (!efficiencyInlineClass) {
	          efficiencyInlineClass = '';
	        }
	        inlineEfficiencyPrev.after(babelHelpers.classPrivateFieldLooseBase(this, _renderEfficiencyInlineContent)[_renderEfficiencyInlineContent](efficiencyInlineClass));
	      }
	    }
	  });
	  return babelHelpers.classPrivateFieldLooseBase(this, _efficiencyPopup)[_efficiencyPopup];
	}
	function _getEfficiencyData2() {
	  let logoClass = '--first';
	  let notice = main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_NO_STATS');
	  switch (babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].stats.efficiency) {
	    case 'fast':
	      logoClass = '--fast';
	      notice = main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PERFORMED_QUICKLY');
	      break;
	    case 'slow':
	      logoClass = '--slow';
	      notice = main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PERFORMED_SLOWLY');
	      break;
	    case 'stopped':
	      logoClass = '--stopped';
	      notice = main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PERFORMED_NO_PROGRESS');
	      break;
	    default:
	      break;
	  }
	  return [logoClass, notice];
	}
	function _renderEfficiencyInlineContent2(itemClass) {
	  const [logoClass, notice] = babelHelpers.classPrivateFieldLooseBase(this, _getEfficiencyData)[_getEfficiencyData]();
	  const efficiencyInlineContent = main_core.Tag.render(_t13 || (_t13 = _$2`
			<div class="bizproc-workflow-timeline-item --efficiency ${0}">
				<div class="bizproc-workflow-timeline-item-inner">
					<div class="bizproc-workflow-timeline-title">
						${0}
					</div>
					<div class="bizproc-workflow-timeline-content">
						<div class="bizproc-workflow-timeline-eff-icon ${0}"></div>
						<div class="bizproc-workflow-timeline-content-inner">
							<div class="bizproc-workflow-timeline-caption">${0}</div>
							<div class="bizproc-workflow-timeline-notice">
								<div class="bizproc-workflow-timeline-subject">
									${0}
								</div>
								<span class="bizproc-workflow-timeline-text">
									${0}
								</span>
								<span
									data-hint="${0}"
								></span>
							</div>
							<div class="bizproc-workflow-timeline-notice">
								<div class="bizproc-workflow-timeline-subject">
									${0}
								</div>
								<span class="bizproc-workflow-timeline-text">
									${0}
								</span>
							</div>
						</div>
					</div>
				</div>	
			</div>
		`), itemClass, main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_EFFECTIVITY_MARK'), logoClass, notice, main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_CURRENT_PROCESS_TIME'), DurationFormatter.formatTimeInterval(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].executionTime), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_TIME_DIFFERENCE_MSGVER_1'), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_AVERAGE_PROCESS_TIME'), babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].stats.averageDuration === null ? main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_AVERAGE_PROCESS_TIME_UNKNOWN') : DurationFormatter.formatTimeInterval(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].stats.averageDuration));
	  BX.UI.Hint.init(efficiencyInlineContent);
	  return efficiencyInlineContent;
	}
	function _renderEfficiencyPopupContent2() {
	  const [logoClass, notice] = babelHelpers.classPrivateFieldLooseBase(this, _getEfficiencyData)[_getEfficiencyData]();
	  const popup = main_core.Tag.render(_t14 || (_t14 = _$2`
			<div class="bizproc-timeline-popup">
				<div class="bizproc-timeline-popup-title">
					${0}
				</div>
				<div class="bizproc-timeline-popup-main">
					<div class="bizproc-timeline-popup-status">
						<div class="bizproc-timeline-popup-logo ${0}"></div>
						<div class="bizproc-timeline-popup-notice">${0}</div>
					</div>
					<div class="bizproc-timeline-popup-content">
						<div class="bizproc-timeline-popup-block">
							<span class="bizproc-timeline-popup-val">
								${0}
							</span>
							<span
								data-hint="${0}"
							></span>
							<div class="bizproc-timeline-popup-prop">
								${0}
							</div>
						</div>
						<div class="bizproc-timeline-popup-block">
							<span class="bizproc-timeline-popup-val">
								${0}
							</span>
							<div class="bizproc-timeline-popup-prop">
								${0}
							</div>
						</div>
					</div>
				</div>
				<div class="bizproc-timeline-popup-footer">
					<p class="bizproc-timeline-popup-text">
						${0}
					</p>
					<a class="bizproc-timeline-popup-text" href="javascript:top.BX.Helper.show('redirect=detail&code=18783714')">
						${0}
					</a>
				</div>
			</div>
		`), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_EFFECTIVITY_MARK'), logoClass, notice, DurationFormatter.formatTimeInterval(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].executionTime), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_TIME_DIFFERENCE_MSGVER_1'), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_CURRENT_PROCESS_TIME'), DurationFormatter.formatTimeInterval(babelHelpers.classPrivateFieldLooseBase(this, _data$1)[_data$1].stats.averageDuration), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_AVERAGE_PROCESS_TIME'), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PERFORMANCE_TUNING_TIP'), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_PERFORMANCE_TUNING_LINK'));
	  BX.UI.Hint.init(popup);
	  return popup;
	}
	function _createBiButton2(menu) {
	  const toolbarNode = document.querySelector('[data-role="page-toolbar"]');
	  if (!toolbarNode) {
	    return;
	  }
	  if (menu.length === 1) {
	    const linkBtn = main_core.Tag.render(_t15 || (_t15 = _$2`
				<a class="ui-btn ui-btn-light-border ui-btn-themes" href="${0}" target="_blank">
					${0}
				</a>
			`), main_core.Text.encode(menu[0].URL), main_core.Text.encode(main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_BI_ANALYTICS_BUTTON')));
	    main_core.Dom.prepend(linkBtn, toolbarNode);
	    return;
	  }
	  const clickHandler = babelHelpers.classPrivateFieldLooseBase(this, _showBiMenu)[_showBiMenu].bind(this, menu);
	  const dropBtn = main_core.Tag.render(_t16 || (_t16 = _$2`
			<button class="ui-btn ui-btn-light-border ui-btn-themes ui-btn-dropdown" onclick="${0}">
				${0}
			</button>
		`), clickHandler, main_core.Text.encode(main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_BI_ANALYTICS_BUTTON')));
	  main_core.Dom.prepend(dropBtn, toolbarNode);
	}
	function _createBiPopup2(menu) {
	  babelHelpers.classPrivateFieldLooseBase(this, _biPopup)[_biPopup] = new main_popup.Popup({
	    width: 403,
	    minHeight: 183,
	    closeIcon: true,
	    content: babelHelpers.classPrivateFieldLooseBase(this, _renderBiPopupContent)[_renderBiPopupContent](menu),
	    bindElement: {
	      left: 555,
	      top: babelHelpers.classPrivateFieldLooseBase(this, _getBiMenuTopOffset)[_getBiMenuTopOffset]()
	    },
	    padding: 17,
	    borderRadius: '18px',
	    className: '--bizproc-timeline-popup --bi'
	  });
	  return babelHelpers.classPrivateFieldLooseBase(this, _biPopup)[_biPopup];
	}
	function _getBiMenuTopOffset2() {
	  var _babelHelpers$classPr, _babelHelpers$classPr2, _babelHelpers$classPr3, _babelHelpers$classPr4;
	  const containerHeight = (_babelHelpers$classPr = babelHelpers.classPrivateFieldLooseBase(this, _efficiencyPopup)[_efficiencyPopup]) == null ? void 0 : (_babelHelpers$classPr2 = _babelHelpers$classPr.getPopupContainer()) == null ? void 0 : _babelHelpers$classPr2.offsetHeight;
	  const topOffset = (_babelHelpers$classPr3 = babelHelpers.classPrivateFieldLooseBase(this, _efficiencyPopup)[_efficiencyPopup]) == null ? void 0 : (_babelHelpers$classPr4 = _babelHelpers$classPr3.bindElementPos) == null ? void 0 : _babelHelpers$classPr4.top;
	  if (containerHeight && topOffset) {
	    return containerHeight + topOffset + 20;
	  }
	  return 522;
	}
	function _showBiMenu2(menu, event) {
	  new main_popup.Menu({
	    bindElement: event.target,
	    items: menu.map(item => {
	      return {
	        text: item.TEXT,
	        href: item.URL,
	        target: '_blank'
	      };
	    })
	  }).show();
	}
	function _renderBiPopupContent2(menu) {
	  let btn = null;
	  if (menu.length === 1) {
	    btn = main_core.Tag.render(_t17 || (_t17 = _$2`
				<a class="ui-btn ui-btn-light-border ui-btn-round ui-btn-xs" href="${0}" target="_blank">
					<span class="ui-btn-text">${0}</span>
				</a>
			`), main_core.Text.encode(menu[0].URL), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_BI_ANALYTICS_LINK'));
	  } else {
	    const clickHandler = babelHelpers.classPrivateFieldLooseBase(this, _showBiMenu)[_showBiMenu].bind(this, menu);
	    btn = main_core.Tag.render(_t18 || (_t18 = _$2`
				<a 
					class="ui-btn ui-btn-light-border ui-btn-round ui-btn-xs ui-btn-dropdown"
					onclick="${0}"
				>
					<span class="ui-btn-text">${0}</span>
				</a>
			`), clickHandler, main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_BI_ANALYTICS_LINK'));
	  }
	  return main_core.Tag.render(_t19 || (_t19 = _$2`
			<div class="bizproc-timeline-popup">
				<div class="bizproc-timeline-popup-title">${0}</div>
				<p class="bizproc-timeline-popup-info">${0}</p>
				${0}
			</div>
		`), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_BI_ANALYTICS_TITLE'), main_core.Loc.getMessage('BIZPROC_WORKFLOW_TIMELINE_SLIDER_BI_ANALYTICS_TIP'), btn);
	}
	function _renderLoadingStub2() {
	  return main_core.Tag.render(_t20 || (_t20 = _$2`
			<img src="/bitrix/js/bizproc/workflow/timeline/img/skeleton.svg"
				 style="width:100%; margin: 0; padding: 0;"/>
		`));
	}
	function _hasErrors2() {
	  return babelHelpers.classPrivateFieldLooseBase(this, _errors$1)[_errors$1].length > 0;
	}

	exports.DurationFormatter = DurationFormatter;
	exports.Timeline = Timeline;

}((this.BX.Bizproc.Workflow = this.BX.Bizproc.Workflow || {}),BX.Bizproc,BX.Bizproc,BX,BX.UI,BX.Main,BX.Main,BX.Bizproc,BX));
//# sourceMappingURL=timeline.bundle.js.map

Youez - 2016 - github.com/yon3zu
LinuXploit