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/cvetdv.ru/bitrix/js/calendar/sync/manager/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/calendar/sync/manager/dist/manager.bundle.js.map
{"version":3,"file":"manager.bundle.js","sources":["../src/connectionproviders/connectionitem.js","../src/connectionproviders/connectionprovider.js","../src/controls/syncstatuspopup-v2.js","../src/controls/syncbutton.js","../src/connectionproviders/googleprovider.js","../src/connectionproviders/office365provider.js","../src/connectionproviders/icloudprovider.js","../src/connectionproviders/androidprovider.js","../src/connectionproviders/caldavconnection.js","../src/connectionproviders/caldavprovider.js","../src/connectionproviders/exchangeprovider.js","../src/connectionproviders/iphoneprovider.js","../src/connectionproviders/macprovider.js","../src/connectionproviders/outlookprovider.js","../src/connectionproviders/yandexprovider.js","../src/controls/syncstatuspopup.js","../src/manager.js"],"sourcesContent":["// @flow\n'use strict';\n\nimport {Type} from \"main.core\";\n\nconst isConnectionItemProperty = Symbol.for('BX.Calendar.Sync.Manager.ConnectionItem.isConnectionItem');\n\nexport default class ConnectionItem\n{\n\tconstructor(options)\n\t{\n\t\tthis[isConnectionItemProperty] = true;\n\t\tthis.syncDate = Type.isDate(options.syncDate) ? options.syncDate : new Date();\n\t\tthis.connectionName = options.connectionName;\n\t\tthis.status = options.status;\n\t\tthis.connected = options.connected;\n\t\tthis.addParams = options.addParams;\n\t\tthis.type = options.type;\n\t\tthis.id = options.type;\n\t\tthis.userName = options.userName;\n\t\tthis.accountName = options.accountName;\n\t}\n\n\tstatic createInstance(options)\n\t{\n\t\treturn new this(options);\n\t}\n\n\tstatic isConnectionItem(target: Object)\n\t{\n\t\treturn Type.isObject(target) && target[isConnectionItemProperty] === true;\n\t}\n\n\tgetSyncDate()\n\t{\n\t\treturn this.syncDate;\n\t}\n\n\tgetConnectionName()\n\t{\n\t\treturn this.connectionName;\n\t}\n\n\tgetSyncStatus()\n\t{\n\t\treturn this.status;\n\t}\n\n\tgetConnectStatus()\n\t{\n\t\treturn this.connected;\n\t}\n\n\tgetStatus()\n\t{\n\t\tif (this.connected)\n\t\t{\n\t\t\treturn this.status\n\t\t\t\t? \"success\"\n\t\t\t\t: \"failed\";\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn 'not_connected';\n\t\t}\n\t}\n\n\tgetClassLabel()\n\t{\n\t\treturn this.type;\n\t}\n\n\tgetSections()\n\t{\n\t\treturn this.addParams.sections;\n\t}\n\n\tgetId()\n\t{\n\t\treturn this.addParams.id;\n\t}\n\n\tgetConnectionAccountName()\n\t{\n\t\treturn this.userName;\n\t}\n\n\tgetType()\n\t{\n\t\treturn this.type;\n\t}\n\t\n\tsetId(id)\n\t{\n\t\tthis.addParams.id = id;\n\t}\n\t\n\tsetStatus(status)\n\t{\n\t\tthis.status = status;\n\t}\n\n\tsetUserName(userName)\n\t{\n\t\tthis.userName = userName;\n\t}\n\t\n\tsetConnected(connected)\n\t{\n\t\tthis.connected = connected;\n\t}\n\n\tsetSyncDate(syncDate)\n\t{\n\t\tthis.syncDate = syncDate;\n\t}\n\n\tgetAccountName()\n\t{\n\t\treturn this.accountName;\n\t}\n}","// @flow\n'use strict';\n\nimport ConnectionItem from \"./connectionitem\";\nimport { Event, Reflection, Type } from 'main.core';\nimport {EventEmitter} from \"main.core.events\";\nimport { Util } from 'calendar.util';\n\nexport class ConnectionProvider extends EventEmitter\n{\n\tMENU_WIDTH = 200;\n\tMENU_PADDING = 7;\n\tMENU_INDEX = 3020;\n\tSLIDER_WIDTH = 606;\n\tSTATUS_SYNCHRONIZING = 'synchronizing';\n\tSTATUS_SUCCESS = 'success';\n\tSTATUS_FAILED = 'failed';\n\tSTATUS_REFUSED = 'refused';\n\tSTATUS_PENDING = 'pending';\n\tSTATUS_NOT_CONNECTED = 'not_connected';\n\tERROR_CODE = 'error';\n\n\tSTATUS_LIST = [\n\t\tthis.STATUS_SYNCHRONIZING,\n\t\tthis.STATUS_SUCCESS,\n\t\tthis.STATUS_FAILED,\n\t\tthis.STATUS_REFUSED,\n\t\tthis.STATUS_PENDING,\n\t\tthis.STATUS_NOT_CONNECTED\n\t];\n\tWAITING_MODE_MAX_TIME = 360000; // 6 min\n\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Sync.Manager.ConnectionProvider');\n\n\t\tthis.status = options.status;\n\t\tthis.connected = options.connected;\n\t\tthis.userName = options.userName || '';\n\t\tthis.connectionOriginalName = options.connectionOriginalName || '';\n\t\tthis.mainPanel = options.mainPanel === true;\n\t\tthis.pendingStatus = options.pendingStatus === true;\n\t\tthis.gridTitle = options.gridTitle;\n\t\tthis.gridColor = options.gridColor;\n\t\tthis.gridIcon = options.gridIcon;\n\t\tthis.type = options.type;\n\t\tthis.viewClassification = options.viewClassification;\n\t\tthis.templateClass = options.templateClass;\n\t\t// this.wizardClassName = options.wizardClass || null;\n\t\tthis.connections = [];\n\t\tthis.id = options.id || '';\n\n\t\tthis.isStartedReconnecting = false;\n\t}\n\n\tstatic createInstance(options)\n\t{\n\t\treturn new this(options);\n\t}\n\n\tisActive()\n\t{\n\t\treturn this.connected;\n\t}\n\n\thasMenu()\n\t{\n\t\treturn false;\n\t}\n\n\tdoSupportReconnectionScenario(): boolean\n\t{\n\t\treturn false;\n\t}\n\n\tsetAdditionalParams(options)\n\t{\n\t\tthis.additionalParams = options;\n\t}\n\n\tsetSyncDate(offset)\n\t{\n\t\toffset = parseInt(offset);\n\t\tif (offset > 60)\n\t\t{\n\t\t\tthis.syncDate = new Date(new Date().getTime() - offset * 1000);\n\t\t}\n\t\telse if (!isNaN(offset))\n\t\t{\n\t\t\tthis.syncDate = new Date();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.syncDate = null;\n\t\t}\n\n\t\tif (this.getConnection())\n\t\t{\n\t\t\tthis.getConnection().syncDate = this.syncDate;\n\t\t}\n\t}\n\n\tgetSyncDate()\n\t{\n\t\treturn this.syncDate;\n\t}\n\n\tsetSections(sections)\n\t{\n\t\tthis.sections = sections;\n\t}\n\n\tsetStatus(status)\n\t{\n\t\tif (this.STATUS_LIST.includes(status))\n\t\t{\n\t\t\tthis.status = status;\n\t\t\tif (!this.connected && (status === this.STATUS_SUCCESS || status === this.STATUS_FAILED))\n\t\t\t{\n\t\t\t\tthis.connected = true;\n\t\t\t}\n\t\t\telse if(this.connected && status === this.STATUS_NOT_CONNECTED)\n\t\t\t{\n\t\t\t\tthis.connected = false;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetGridTitle()\n\t{\n\t\treturn this.gridTitle;\n\t}\n\n\tgetGridColor()\n\t{\n\t\treturn this.gridColor;\n\t}\n\n\tgetGridIcon()\n\t{\n\t\treturn this.gridIcon;\n\t}\n\t\n\tclearConnections()\n\t{\n\t\tthis.connections = [];\n\t}\n\n\tsetConnections()\n\t{\n\t\tthis.connections.push(ConnectionItem.createInstance({\n\t\t\tsyncDate: this.getSyncDate(),\n\t\t\tconnectionName: this.connectionName,\n\t\t\tstatus: this.status,\n\t\t\tconnected: this.connected,\n\t\t\tuserName: this.userName,\n\t\t\taddParams: {\n\t\t\t\tsections: this.sections,\n\t\t\t\tid: this.id || this.type,\n\t\t\t},\n\t\t\ttype: this.type,\n\t\t\taccountName: this.getAccountName(),\n\t\t}));\n\t}\n\n\tgetAccountName()\n\t{\n\t\treturn this.getType();\n\t}\n\n\tsetInterfaceUnit(interfaceUnit): void\n\t{\n\t\tthis.interfaceUnit = interfaceUnit;\n\t}\n\n\tgetInterfaceUnit()\n\t{\n\t\treturn this.interfaceUnit;\n\t}\n\n\tgetConnections()\n\t{\n\t\treturn this.connections;\n\t}\n\n\tgetName()\n\t{\n\t\treturn this.connectionOriginalName;\n\t}\n\n\tgetConnection()\n\t{\n\t\treturn this.connections[0];\n\t}\n\n\tgetType()\n\t{\n\t\treturn this.type;\n\t}\n\n\tgetViewClassification()\n\t{\n\t\treturn this.viewClassification;\n\t}\n\n\tgetConnectStatus()\n\t{\n\t\treturn this.connected;\n\t}\n\n\tgetSyncStatus()\n\t{\n\t\treturn this.status;\n\t}\n\n\tgetStatus()\n\t{\n\t\tif (this.getWizardSyncMode())\n\t\t{\n\t\t\treturn 'synchronizing';\n\t\t}\n\n\t\tif (this.connected)\n\t\t{\n\t\t\tconst status = this.status ? 'success' : 'failed';\n\n\t\t\tif (status === 'failed' && this.isGoogleApplicationRefused)\n\t\t\t{\n\t\t\t\treturn 'refused';\n\t\t\t}\n\n\t\t\treturn status;\n\t\t}\n\t\telse if (this.pendingStatus)\n\t\t{\n\t\t\treturn 'pending';\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn 'not_connected';\n\t\t}\n\t}\n\n\tgetTemplateClass()\n\t{\n\t\treturn this.templateClass;\n\t}\n\n\topenSlider(options)\n\t{\n\t\tBX.SidePanel.Instance.open(options.sliderId, {\n\t\t\tcontentCallback(slider)\n\t\t\t{\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tresolve(options.content);\n\t\t\t\t});\n\t\t\t},\n\t\t\tdata: options.data || {},\n\t\t\tcacheable: options.cacheable,\n\t\t\twidth: this.SLIDER_WIDTH,\n\t\t\tallowChangeHistory: false,\n\t\t\tevents: {\n\t\t\t\tonLoad: event => {\n\t\t\t\t\tthis.itemSlider = event.getSlider();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tcloseSlider()\n\t{\n\t\tif (this.itemSlider)\n\t\t{\n\t\t\tthis.itemSlider.close();\n\t\t}\n\t}\n\n\topenInfoConnectionSlider(connection = null)\n\t{\n\t\tconst content = this.getClassTemplateItem().createInstance(this, connection).getInfoConnectionContent();\n\t\tthis.openSlider({\n\t\t\tsliderId: 'calendar:item-sync-connect-' + this.type,\n\t\t\tcontent: content,\n\t\t\tcacheable: false,\n\t\t\tdata: {\n\t\t\t\tprovider: this,\n\t\t\t},\n\t\t});\n\t}\n\n\topenActiveConnectionSlider(connection)\n\t{\n\t\tconst itemInterface = this.getClassTemplateItem().createInstance(this, connection);\n\t\tif (this.type === 'google')\n\t\t{\n\t\t\titemInterface.getSectionsForGoogle().then(() => {\n\t\t\t\tthis.openActiveConnectionSliderVendor(itemInterface, connection);\n\t\t\t})\n\t\t}\n\t\telse if (this.type === 'icloud')\n\t\t{\n\t\t\titemInterface.getSectionsForIcloud().then(() => {\n\t\t\t\tthis.openActiveConnectionSliderVendor(itemInterface, connection);\n\t\t\t});\n\t\t}\n\t\telse if (this.type === 'office365')\n\t\t{\n\t\t\titemInterface.getSectionsForOffice365().then(() => {\n\t\t\t\tthis.openActiveConnectionSliderVendor(itemInterface, connection);\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.openActiveConnectionSliderVendor(itemInterface, connection);\n\t\t}\n\t}\n\n\topenActiveConnectionSliderVendor(itemInterface, connection)\n\t{\n\t\tconst content = itemInterface.getActiveConnectionContent();\n\n\t\tthis.openSlider({\n\t\t\tsliderId: 'calendar:item-sync-' + connection.id,\n\t\t\tcontent: content,\n\t\t\tcacheable: false,\n\t\t\tdata: {\n\t\t\t\tprovider: this,\n\t\t\t\tconnection: connection,\n\t\t\t\titemInterface: itemInterface,\n\t\t\t},\n\t\t});\n\t}\n\n\tgetClassTemplateItem()\n\t{\n\t\tconst itemClass = Reflection.getClass(this.getTemplateClass());\n\t\tif (Type.isFunction(itemClass))\n\t\t{\n\t\t\treturn itemClass;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tgetConnectionById(id)\n\t{\n\t\tconst connections = this.getConnections();\n\t\tif (connections.length > 0)\n\t\t{\n\t\t\tconst result = connections.filter(connection => {\n\t\t\t\treturn connection.getId() == id;\n\t\t\t});\n\t\t\tif (result)\n\t\t\t{\n\t\t\t\treturn result[0];\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tgetSyncPanelTitle()\n\t{\n\t\treturn this.gridTitle;\n\t}\n\n\tgetSyncPanelLogo()\n\t{\n\t\treturn '--' + this.type;\n\t}\n\n\tsetWizardSyncMode(value)\n\t{\n\t\tthis.wizardSyncMode = value;\n\t}\n\n\tgetWizardSyncMode()\n\t{\n\t\treturn this.wizardSyncMode;\n\t}\n\n\tsetWizardState(stateData)\n\t{\n\t\tconst wizard = this.getActiveWizard();\n\t\tif (wizard)\n\t\t{\n\t\t\tif (stateData.status === this.ERROR_CODE)\n\t\t\t{\n\t\t\t\twizard.setErrorState(stateData);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\twizard.handleUpdateState(stateData);\n\t\t\t}\n\t\t}\n\t}\n\n\tsetUserName(userName = '')\n\t{\n\t\tthis.userName = userName;\n\t\tif (this.getConnection())\n\t\t{\n\t\t\tthis.getConnection().setUserName(userName);\n\t\t}\n\t}\n\n\tsetActiveWizard(wizard)\n\t{\n\t\tthis.activeWizard = wizard;\n\t\twizard.subscribe('onConnectionCreated', this.handleCreatedConnection.bind(this));\n\t\twizard.subscribe('onClose', this.handleCloseWizard.bind(this));\n\t\twizard.subscribe('startWizardWaitingMode', this.startWaitingMode.bind(this));\n\t\twizard.subscribe('endWizardWaitingMode', this.endWaitingMode.bind(this));\n\t}\n\n\tgetActiveWizard()\n\t{\n\t\treturn this.activeWizard || null;\n\t}\n\n\tstartWaitingMode()\n\t{\n\t\tthis.emit('onStartWaitingMode');\n\t\tthis.waitingModeReserveTimeout = setTimeout(() => {\n\t\t\tif (this.getActiveWizard() && this.getActiveWizard().getSlider())\n\t\t\t{\n\t\t\t\tBX.reload();\n\t\t\t}\n\t\t\t}, this.WAITING_MODE_MAX_TIME\n\t\t);\n\t}\n\n\tendWaitingMode()\n\t{\n\t\tthis.emit('onEndWaitingMode');\n\t\tif (this.waitingModeReserveTimeout)\n\t\t{\n\t\t\tclearTimeout(this.waitingModeReserveTimeout);\n\t\t\tthis.waitingModeReserveTimeout = null;\n\t\t}\n\t}\n\n\thandleCreatedConnection()\n\t{\n\t\tif (this.isStartedReconnecting)\n\t\t{\n\t\t\tthis.setWizardSyncMode(false);\n\t\t}\n\n\t\tthis.setStatus(this.STATUS_SUCCESS);\n\t\tthis.getInterfaceUnit().setSyncStatus(this.STATUS_SUCCESS);\n\n\t\tBX.ajax.runAction('calendar.api.syncajax.clearSuccessfulConnectionNotifier', {\n\t\t\tdata: {\n\t\t\t\taccountType: this.getType()\n\t\t\t},\n\t\t});\n\n\t\t// TODO: It's better to avoid using of calendarContext.\n\t\t//  Replace it with eventEmitter events and check for unnecessary requests\n\t\tconst calendarContext = Util.getCalendarContext();\n\t\tif (calendarContext)\n\t\t{\n\t\t\tcalendarContext.syncInterface.refreshDebounce();\n\t\t}\n\n\t\tif (this.isReconnecting())\n\t\t{\n\t\t\tthis.handleCloseWizard();\n\t\t\tthis.endReconnecting();\n\t\t}\n\t}\n\n\tstartReconnecting(): void\n\t{\n\t\tif (this.doSupportReconnectionScenario())\n\t\t{\n\t\t\tthis.isStartedReconnecting = true;\n\t\t}\n\t}\n\n\tendReconnecting(): void\n\t{\n\t\tif (this.doSupportReconnectionScenario())\n\t\t{\n\t\t\tthis.isStartedReconnecting = false;\n\t\t}\n\t}\n\n\tisReconnecting(): boolean\n\t{\n\t\treturn this.isStartedReconnecting;\n\t}\n\n\thandleCloseWizard()\n\t{\n\t\tconst wizard = this.getActiveWizard();\n\t\tthis.setWizardSyncMode(false);\n\t\tif (wizard && wizard.isSyncFinished())\n\t\t{\n\t\t\tthis.setStatus(this.STATUS_SUCCESS);\n\t\t\tthis.getInterfaceUnit().setSyncStatus(this.STATUS_SUCCESS);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.setStatus(this.STATUS_SYNCHRONIZING);\n\t\t\tthis.getInterfaceUnit().setSyncStatus(this.STATUS_SYNCHRONIZING);\n\n\t\t\tBX.SidePanel.Instance.getOpenSliders().forEach(slider =>\n\t\t\t{\n\t\t\t\tif (['calendar:sync-slider', 'calendar:section-slider']\n\t\t\t\t\t.includes(slider.getUrl()))\n\t\t\t\t{\n\t\t\t\t\tslider.close();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.getInterfaceUnit().refreshButton();\n\n\t\tthis.emit('onEndWaitingMode');\n\n\t\tthis.emit('onCloseSyncWizard');\n\n\t\tif (wizard)\n\t\t{\n\t\t\twizard.unsubscribeAll();\n\t\t}\n\t}\n\n\trefresh(options)\n\t{\n\t\tthis.status = options.syncInfo.status || false;\n\t\tthis.connected = options.syncInfo.connected || false;\n\t\tthis.id = options.syncInfo.id || null;\n\t\tif (options.syncLink)\n\t\t{\n\t\t\tthis.syncLink = options.syncLink;\n\t\t}\n\t\tthis.setSyncDate(options.syncInfo.syncOffset);\n\t\tthis.setSections(options.sections);\n\t\tthis.clearConnections();\n\t\tthis.setConnections();\n\t}\n\n\tgetFailedConnectionName()\n\t{\n\t\treturn this.getType();\n\t}\n\n\tgetFirstFailedConnection()\n\t{\n\t\treturn this.getFailedConnections()[0];\n\t}\n\n\tgetFailedConnectionsCount()\n\t{\n\t\treturn this.getFailedConnections().length;\n\t}\n\n\tgetFailedConnections()\n\t{\n\t\treturn this.connections.filter((connection) => connection.status === false);\n\t}\n}\n","// @flow\n\n'use strict';\n\nimport { Loc, Event, Text, Type } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { Guide } from 'ui.tour';\nimport { ConnectionProvider } from '../connectionproviders/connectionprovider';\nimport ConnectionItem from '../connectionproviders/connectionitem';\n\nexport default class SyncStatusPopupV2 extends EventEmitter\n{\n\tstatic SYNC_POPUP_KEY = 'sync_popup';\n\tstatic SYNC_POPUP_TTL = 3600 * 24 * 30 * 1000; // 30 days\n\tstatic IS_RUN_REFRESH = false;\n\t#guide;\n\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Sync.Interface.SyncStatusPopupV2');\n\t\tconst node = options.node;\n\t\tconst failedConnection: ConnectionProvider = options.failedConnection;\n\n\t\tthis.node = node;\n\t\tthis.#guide = new Guide({\n\t\t\tsteps: [\n\t\t\t\t{\n\t\t\t\t\ttarget: this.node,\n\t\t\t\t\ttitle: Loc.getMessage('CALENDAR_SYNC_MANAGER_AHA_TITLE'),\n\t\t\t\t\ttext: this.getText(failedConnection),\n\t\t\t\t\tarticle: null,\n\t\t\t\t},\n\t\t\t],\n\t\t\tonEvents: true,\n\t\t\tautoHide: true,\n\t\t\toverlay: false,\n\t\t});\n\n\t\tthis.#guide.start();\n\t\tthis.setAsShown(failedConnection);\n\n\t\tconst linkNode = this.#guide.getPopup()?.getPopupContainer()?.querySelector('[data-id=\"calendar-sync-manager__aha-link\"]');\n\t\tif (linkNode)\n\t\t{\n\t\t\tEvent.bind(linkNode, 'click', () => {\n\t\t\t\toptions.onSyncPanelOpen();\n\t\t\t\tthis.#guide.close();\n\t\t\t});\n\t\t}\n\n\t\tthis.#guide.getPopup().setWidth(390);\n\t}\n\n\tstatic createInstance(options): SyncStatusPopupV2 | null\n\t{\n\t\tconst failedConnection = SyncStatusPopupV2.getNotShownFailedConnection(options);\n\t\tconst isFailed = options.status === 'failed';\n\t\tconst syncErrors = options.syncErrors > 0;\n\n\t\treturn (isFailed && syncErrors && failedConnection)\n\t\t\t? new this({ failedConnection, ...options })\n\t\t\t: null\n\t\t\t;\n\t}\n\n\tstatic getNotShownFailedConnection(options): ConnectionItem | null\n\t{\n\t\treturn SyncStatusPopupV2.getFailedConnections(options).find((failedConnection: ConnectionItem) => {\n\t\t\treturn !SyncStatusPopupV2.alreadyShown(failedConnection);\n\t\t});\n\t}\n\n\tstatic getFailedConnections(options): ConnectionItem[] | []\n\t{\n\t\tconst failedConnections = [];\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const providerName in options.connectionsProviders)\n\t\t{\n\t\t\tif (Object.prototype.hasOwnProperty.call(options.connectionsProviders, providerName)\n\t\t\t\t&& options.connectionsProviders[providerName].getStatus() === 'failed')\n\t\t\t{\n\t\t\t\tfailedConnections.push(\n\t\t\t\t\t...SyncStatusPopupV2.getFailedConnectionsFromProvider(options.connectionsProviders[providerName]),\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn failedConnections;\n\t}\n\n\tstatic getFailedConnectionsFromProvider(provider: ConnectionProvider): ConnectionItem[] | []\n\t{\n\t\treturn provider.getConnections()?.filter((connection: ConnectionItem) => {\n\t\t\treturn connection.getStatus() === 'failed';\n\t\t});\n\t}\n\n\tstatic alreadyShown(failedConnection: ConnectionItem): Boolean\n\t{\n\t\tif (Type.isUndefined(window.localStorage))\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tconst key = `${SyncStatusPopupV2.SYNC_POPUP_KEY}_${failedConnection.getConnectionName()}`;\n\t\tconst itemString = window.localStorage.getItem(key);\n\t\tif (!itemString)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst item = JSON.parse(itemString);\n\t\tconst now = new Date();\n\n\t\treturn now.getTime() < item.expire;\n\t}\n\n\tgetText(failedConnection: ConnectionItem): Element\n\t{\n\t\tconst providerName = Text.encode(failedConnection.getConnectionName());\n\t\tconst accountName = Text.encode(failedConnection.getAccountName()).trim();\n\t\tconst accountNameCapitalized = `<span class=\"calendar-sync-manager__aha-content-element-type\">${accountName}</span>`;\n\n\t\treturn `\n\t\t\t<div class=\"calendar-sync-manager__aha-content\">\n\t\t\t\t<div class=\"calendar-sync-manager__aha-content-element\">\n\t\t\t\t\t${Loc.getMessage('CALENDAR_SYNC_MANAGER_AHA_TEXT_1', { '#PROVIDER_NAME#': providerName })}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-manager__aha-content-element\">\n\t\t\t\t\t${Loc.getMessage('CALENDAR_SYNC_MANAGER_AHA_TEXT_2', { '#PROVIDER#': accountNameCapitalized })}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"calendar-sync-manager__aha-link\" data-id=\"calendar-sync-manager__aha-link\">\n\t\t\t\t\t${Loc.getMessage('CALENDAR_SYNC_MANAGER_AHA_LINK')}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tsetAsShown(failedConnection: ConnectionItem): void\n\t{\n\t\tif (Type.isUndefined(window.localStorage))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst now = new Date();\n\t\tconst key = `${SyncStatusPopupV2.SYNC_POPUP_KEY}_${failedConnection.getConnectionName()}`;\n\t\tconst payload = {\n\t\t\texpire: now.getTime() + SyncStatusPopupV2.SYNC_POPUP_TTL,\n\t\t};\n\t\twindow.localStorage.setItem(key, JSON.stringify(payload));\n\t}\n}","import { Dom, Loc, Tag } from 'main.core';\nimport { Popup } from 'main.popup';\nimport { Button, ButtonSize, ButtonIcon, ButtonColor } from 'ui.buttons';\nimport SyncStatusPopupV2 from './syncstatuspopup-v2';\n\nexport default class SyncButton\n{\n\tconstructor(options)\n\t{\n\t\tthis.connectionsProviders = options.connectionsProviders;\n\t\tthis.wrapper = options.wrapper;\n\t\tthis.userId = options.userId;\n\t\tthis.status = options.status;\n\t\tthis.isGoogleApplicationRefused = options.isGoogleApplicationRefused;\n\t\tthis.counters = options.counters;\n\t\tthis.payAttentionToNewSharingFeature = options.payAttentionToNewSharingFeature;\n\n\t\tthis.buttonEnterTimeout = null;\n\t}\n\n\tstatic createInstance(options): SyncButton\n\t{\n\t\treturn new this(options);\n\t}\n\n\tshow()\n\t{\n\t\tconst buttonData = this.getButtonData();\n\n\t\tthis.button = new Button({\n\t\t\tround: true,\n\t\t\ttext: buttonData.text,\n\t\t\tsize: ButtonSize.EXTRA_SMALL,\n\t\t\tcolor: buttonData.color,\n\t\t\tcounter: buttonData.counter ?? 0,\n\t\t\tleftCounter: buttonData.counter ? { value: buttonData.counter ?? 0 } : '',\n\t\t\ticon: buttonData.icon || '',\n\t\t\tclassName: `ui-btn-themes ${buttonData.iconClass || ''}`,\n\t\t\tonclick: this.handleClick,\n\t\t\tdataset: {\n\t\t\t\tid: 'calendar_sync_button',\n\t\t\t},\n\t\t});\n\n\t\tthis.button.renderTo(this.wrapper);\n\n\t\tif (!this.payAttentionToNewSharingFeature)\n\t\t{\n\t\t\tthis.showAhaMoment(this.button);\n\t\t}\n\t}\n\n\tshowAhaMoment(button)\n\t{\n\t\tsetTimeout(() => {\n\t\t\tSyncStatusPopupV2.createInstance({\n\t\t\t\tstatus: this.status,\n\t\t\t\tsyncErrors: this.counters.sync_errors ?? 0,\n\t\t\t\tconnectionsProviders: this.connectionsProviders,\n\t\t\t\tnode: button.getContainer(),\n\t\t\t\tid: 'calendar-sync-v2__dialog',\n\t\t\t\tonSyncPanelOpen: this.handleClick,\n\t\t\t});\n\t\t}, 1000);\n\t}\n\n\tshowGoogleApplicationRefusedPopup()\n\t{\n\t\tconst popup = new Popup({\n\t\t\tbindElement: this.button.getContainer(),\n\t\t\tborderRadius: '3px',\n\t\t\tclassName: 'calendar-popup-ui-tour-animate',\n\t\t\tcontent: Tag.render`\n\t\t\t\t<div class=\"calendar-sync-popup-status-refused\">\n\t\t\t\t\t<div class=\"calendar-sync-popup-status-refused-title\">\n\t\t\t\t\t\t${Loc.getMessage('CAL_SYNC_INFO_STATUS_REFUSED_POPUP_TITLE')}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"calendar-sync-popup-status-refused-text\">\n\t\t\t\t\t\t${Loc.getMessage('CAL_SYNC_INFO_STATUS_REFUSED_POPUP_TEXT')}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`,\n\t\t\twidth: 400,\n\t\t\tangle: {\n\t\t\t\toffset: this.button.getContainer().offsetWidth / 2,\n\t\t\t\tposition: 'top',\n\t\t\t},\n\t\t\tcloseIcon: true,\n\t\t\tautoHide: true,\n\t\t});\n\n\t\tsetTimeout(() => {\n\t\t\tpopup.show();\n\t\t\tBX.ajax.runAction('calendar.api.syncajax.disableShowGoogleApplicationRefused');\n\t\t}, 1000);\n\t}\n\n\trefresh(status, counters = null)\n\t{\n\t\tthis.status = status;\n\t\tthis.counters = counters ?? this.counters;\n\n\t\tconst buttonData = this.getButtonData();\n\t\tthis.button.setColor(buttonData.color);\n\t\tthis.button.setText(buttonData.text);\n\t\tthis.button.removeClass('ui-btn-icon-fail ui-btn-icon-success ui-btn-clock calendar-sync-btn-icon-refused calendar-sync-btn-counter');\n\t\tthis.button.addClass(buttonData.iconClass);\n\t\tthis.button.setCounter(buttonData.counter ?? 0);\n\t}\n\n\thandleClick = () => {\n\t\tclearTimeout(this.buttonEnterTimeout);\n\t\t// eslint-disable-next-line promise/catch-or-return\n\t\t(window.top.BX || window.BX).Runtime.loadExtension('calendar.sync.interface').then((exports) => {\n\t\t\tif (!Dom.hasClass(this.button.button, 'ui-btn-clock'))\n\t\t\t{\n\t\t\t\tthis.syncPanel = new exports.SyncPanel({\n\t\t\t\t\tconnectionsProviders: this.connectionsProviders,\n\t\t\t\t\tuserId: this.userId,\n\t\t\t\t\tstatus: this.status,\n\t\t\t\t});\n\t\t\t\tthis.syncPanel.openSlider();\n\t\t\t}\n\t\t});\n\t};\n\n\tgetButtonData(): Object\n\t{\n\t\tif (this.status === 'refused')\n\t\t{\n\t\t\treturn {\n\t\t\t\ttext: Loc.getMessage('CAL_BUTTON_STATUS_FAILED_RECONNECT'),\n\t\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\t\ticon: ButtonIcon.REFRESH,\n\t\t\t\ticonClass: 'calendar-sync-btn-icon-refused',\n\t\t\t};\n\t\t}\n\n\t\tswitch (this.status)\n\t\t{\n\t\t\tcase 'success': {\n\t\t\t\treturn {\n\t\t\t\t\ttext: Loc.getMessage('STATUS_BUTTON_SYNCHRONIZATION'),\n\t\t\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\t\t\ticon: ButtonIcon.CHECK,\n\t\t\t\t\ticonClass: 'ui-btn-icon-success',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tcase 'failed': {\n\t\t\t\treturn {\n\t\t\t\t\ttext: Loc.getMessage('STATUS_BUTTON_FAILED'),\n\t\t\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\t\t\tcounter: this.counters.sync_errors || 1,\n\t\t\t\t\ticonClass: 'calendar-sync-btn-counter',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tcase 'synchronizing': {\n\t\t\t\treturn {\n\t\t\t\t\ttext: Loc.getMessage('STATUS_BUTTON_SYNCHRONIZATION'),\n\t\t\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\t\t\ticonClass: 'ui-btn-clock',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\treturn {\n\t\t\t\t\ttext: Loc.getMessage('STATUS_BUTTON_SYNC_CALENDAR_NEW'),\n\t\t\t\t\tcolor: ButtonColor.PRIMARY,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\tgetSyncPanel()\n\t{\n\t\treturn this.syncPanel;\n\t}\n\n\tsetConnectionProviders(connectionsProviders): void\n\t{\n\t\tthis.connectionsProviders = connectionsProviders;\n\t}\n}\n","import {ConnectionProvider} from \"./connectionprovider\";\nimport { Event, Loc } from 'main.core';\n\nexport class GoogleProvider extends ConnectionProvider\n{\n\tconstructor(options)\n\t{\n\t\tsuper({\n\t\t\tid: options.syncInfo.id || null,\n\t\t\tstatus: options.syncInfo.status || false,\n\t\t\tconnected: options.syncInfo.connected || false,\n\t\t\tuserName: options.syncInfo.userName || '',\n\t\t\tconnectionOriginalName: options.syncInfo.connectionName || '',\n\t\t\tgridTitle: Loc.getMessage('CALENDAR_TITLE_GOOGLE'),\n\t\t\tgridColor: '#387ced',\n\t\t\tgridIcon: '/bitrix/images/calendar/sync/google.svg',\n\t\t\ttype: 'google',\n\t\t\tinterfaceClassName: '',\n\t\t\tviewClassification: 'web',\n\t\t\ttemplateClass: 'BX.Calendar.Sync.Interface.GoogleTemplate',\n\t\t\tmainPanel: options.mainPanel,\n\t\t});\n\t\tthis.connectionName = Loc.getMessage('CALENDAR_TITLE_GOOGLE');\n\t\tthis.isSetSyncGoogleSettings = options.isSetSyncGoogleSettings;\n\t\tthis.syncLink = options.syncLink;\n\t\tthis.isGoogleApplicationRefused = options.isGoogleApplicationRefused;\n\n\t\tthis.setSyncDate(options.syncInfo.syncOffset);\n\t\tthis.setSections(options.sections);\n\t\tthis.setConnections();\n\t}\n\n\tdoSupportReconnectionScenario(): boolean\n\t{\n\t\treturn true;\n\t}\n\n\tgetSyncLink()\n\t{\n\t\treturn this.syncLink;\n\t}\n\n\thasSetSyncGoogleSettings()\n\t{\n\t\treturn this.isSetSyncGoogleSettings;\n\t}\n\n\tsaveConnection()\n\t{\n\t\tBX.ajax.runAction('calendar.api.syncajax.createGoogleConnection', {\n\t\t\tdata: {}\n\t\t}).then(\n\t\t\tresponse => {\n\t\t\t\tif (response?.data?.status === this.ERROR_CODE)\n\t\t\t\t{\n\t\t\t\t\tif (this.isGoogleApplicationRefused)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.setStatus(this.STATUS_REFUSED);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.setStatus(this.STATUS_FAILED);\n\t\t\t\t\t}\n\t\t\t\t\tthis.setWizardState(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstatus: this.ERROR_CODE,\n\t\t\t\t\t\t\tvendorName: this.type,\n\t\t\t\t\t\t\taccountName: response?.data?.googleApiStatus?.googleCalendarPrimaryId\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\tthis.setWizardState(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstage: 'connection_created',\n\t\t\t\t\t\t\tvendorName: this.type,\n\t\t\t\t\t\t\taccountName: response?.data?.googleApiStatus?.googleCalendarPrimaryId\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tthis.emit(\n\t\t\t\t\t'onSyncInfoUpdated',\n\t\t\t\t\tnew Event.BaseEvent({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tsyncInfo: response.data.syncInfo\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t},\n\t\t\tresponse => {\n\t\t\t\tif (this.isGoogleApplicationRefused)\n\t\t\t\t{\n\t\t\t\t\tthis.setStatus(this.STATUS_REFUSED);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.setStatus(this.STATUS_FAILED);\n\t\t\t\t}\n\t\t\t\tthis.setWizardState(\n\t\t\t\t\t{\n\t\t\t\t\t\tstatus: this.ERROR_CODE,\n\t\t\t\t\t\tvendorName: this.type\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\t}\n}","import {ConnectionProvider} from \"./connectionprovider\";\nimport {Loc} from \"main.core\";\n\nexport class Office365Provider extends ConnectionProvider\n{\n\tconstructor(options)\n\t{\n\t\tsuper({\n\t\t\tid: options.syncInfo.id || null,\n\t\t\tstatus: options.syncInfo.status || false,\n\t\t\tconnected: options.syncInfo.connected || false,\n\t\t\tuserName: options.syncInfo.userName || options.syncInfo.connectionName || '',\n\t\t\tconnectionOriginalName: options.syncInfo.connectionName || '',\n\t\t\tgridTitle: Loc.getMessage('CALENDAR_TITLE_OFFICE365'),\n\t\t\tgridColor: '#fc1d1d',\n\t\t\tgridIcon: '/bitrix/images/calendar/sync/office365.svg',\n\t\t\ttype: 'office365',\n\t\t\tinterfaceClassName: '',\n\t\t\tviewClassification: 'web',\n\t\t\ttemplateClass: 'BX.Calendar.Sync.Interface.Office365template',\n\t\t\tmainPanel: true,\n\t\t});\n\t\tthis.connectionName = Loc.getMessage('CALENDAR_TITLE_OFFICE365');\n\t\tthis.syncLink = options.syncLink || '';\n\t\tthis.isSetSyncOffice365Settings = options.isSetSyncOffice365Settings;\n\n\t\tthis.setSyncDate(options.syncInfo.syncOffset);\n\t\tthis.setSections(options.sections);\n\t\tthis.setConnections();\n\t}\n\n\tdoSupportReconnectionScenario(): boolean\n\t{\n\t\treturn true;\n\t}\n\n\tgetSyncLink()\n\t{\n\t\treturn this.syncLink;\n\t}\n\n\thasSetSyncOffice365Settings()\n\t{\n\t\treturn this.isSetSyncOffice365Settings;\n\t}\n\n\tsaveConnection()\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tBX.ajax.runAction('calendar.api.syncajax.createOffice365Connection')\n\t\t\t\t.then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tif (response?.data?.status === this.provider.ERROR_CODE)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.setStatus(this.provider.STATUS_FAILED);\n\t\t\t\t\t\t\tthis.setWizardState(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstatus: this.provider.ERROR_CODE,\n\t\t\t\t\t\t\t\t\tvendorName: this.provider.type,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (response?.data?.connectionId)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.setStatus(this.provider.STATUS_SUCCESS);\n\t\t\t\t\t\t\tthis.getConnection().setId(response.data.connectionId);\n\t\t\t\t\t\t\tthis.getConnection().setStatus(true);\n\t\t\t\t\t\t\tthis.getConnection().setConnected(true);\n\t\t\t\t\t\t\tthis.getConnection().setSyncDate(new Date());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t},\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tthis.setStatus(this.provider.STATUS_FAILED);\n\t\t\t\t\t\tthis.setWizardState(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstatus: this.provider.ERROR_CODE,\n\t\t\t\t\t\t\t\tvendorName: this.provider.type,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tresolve(response.errors);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t})\n\t}\n}\n","import {ConnectionProvider} from \"./connectionprovider\";\nimport {Loc} from \"main.core\";\n\nexport class ICloudProvider extends ConnectionProvider\n{\n\tconstructor(options)\n\t{\n\t\tsuper({\n\t\t\tid: options.syncInfo.id || null,\n\t\t\tstatus: options.syncInfo.status || false,\n\t\t\tconnected: options.syncInfo.connected || false,\n\t\t\tuserName: options.syncInfo.userName || '',\n\t\t\tconnectionOriginalName: options.syncInfo.connectionName || '',\n\t\t\tgridTitle: Loc.getMessage('CALENDAR_TITLE_ICLOUD'),\n\t\t\tgridColor: '#948f8f',\n\t\t\tgridIcon: '/bitrix/images/calendar/sync/icloud.svg',\n\t\t\ttype: 'icloud',\n\t\t\tinterfaceClassName: '',\n\t\t\tviewClassification: 'web',\n\t\t\ttemplateClass: 'BX.Calendar.Sync.Interface.IcloudTemplate',\n\t\t\tmainPanel: true,\n\t\t});\n\t\tthis.connectionName = Loc.getMessage('CALENDAR_TITLE_ICLOUD');\n\n\t\tthis.setSyncDate(options.syncInfo.syncOffset);\n\t\tthis.setSections(options.sections);\n\t\tthis.setConnections();\n\t}\n\n\tdoSupportReconnectionScenario(): boolean\n\t{\n\t\treturn true;\n\t}\n\n\tgetFailedConnectionName(): string\n\t{\n\t\treturn 'iCloud';\n\t}\n}\n","import {ConnectionProvider} from \"./connectionprovider\";\nimport {Loc} from \"main.core\";\n\nexport class AndroidProvider extends ConnectionProvider\n{\n\tconstructor(options)\n\t{\n\t\tsuper({\n\t\t\tstatus: options.syncInfo.status,\n\t\t\tconnected: options.syncInfo.connected,\n\t\t\tgridTitle: Loc.getMessage('CALENDAR_TITLE_ANDROID'),\n\t\t\tgridColor: '#9ece03',\n\t\t\tgridIcon: '/bitrix/images/calendar/sync/android.svg',\n\t\t\ttype: 'android',\n\t\t\tviewClassification: 'mobile',\n\t\t\ttemplateClass: 'BX.Calendar.Sync.Interface.AndroidTemplate',\n\t\t});\n\t\tthis.connectionName = Loc.getMessage('CALENDAR_TITLE_ANDROID');\n\n\t\tthis.setSyncDate(options.syncInfo.syncOffset);\n\t\tthis.setConnections();\n\t}\n}","import {ConnectionProvider} from \"./connectionprovider\";\nimport { Loc, Type } from 'main.core';\nimport ConnectionItem from \"./connectionitem\";\n\nexport class CaldavConnection extends ConnectionProvider\n{\n\tconstructor(options)\n\t{\n\t\tsuper(options);\n\t}\n\n\tdoSupportReconnectionScenario(): boolean\n\t{\n\t\treturn true;\n\t}\n\n\tstatic calculateStatus(connections)\n\t{\n\t\tif (connections.length === 0)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (let key in connections)\n\t\t{\n\t\t\tif (this.isFailedConnections(connections[key]))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tstatic isFailedConnections(connection)\n\t{\n\t\tif (connection.syncInfo.connected === true\n\t\t\t&& connection.syncInfo.status === false)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\thasMenu()\n\t{\n\t\treturn this.connected;\n\t}\n\n\tshowMenu(bindElement)\n\t{\n\t\tif (this.menu)\n\t\t{\n\t\t\tthis.menu.destroy();\n\t\t}\n\n\t\tconst menuItems = this.getMenuItems();\n\t\tmenuItems.push(...this.getMenuItemConnect());\n\t\tthis.menu = this.getMenu(bindElement, menuItems);\n\t\tthis.addMenuHandler();\n\t\tthis.menu.show();\n\t}\n\n\taddMenuHandler()\n\t{\n\t\tif (this.menu)\n\t\t{\n\t\t\tthis.menu.getMenuContainer().addEventListener('click', () =>\n\t\t\t{\n\t\t\t\tthis.menu.close();\n\t\t\t});\n\t\t}\n\t}\n\n\tgetMenuItems()\n\t{\n\t\tconst menuItems = [];\n\t\tthis.connections.forEach(item =>\n\t\t{\n\t\t\titem.type = this.type;\n\t\t\titem.id = item.addParams.id;\n\t\t\titem.text = item.connectionName;\n\t\t\titem.onclick = () =>\n\t\t\t{\n\t\t\t\tthis.openActiveConnectionSlider(item);\n\t\t\t};\n\t\t\tmenuItems.push(item);\n\t\t});\n\n\t\treturn menuItems;\n\t}\n\n\tgetMenuItemConnect()\n\t{\n\t\treturn [\n\t\t\t{delimiter: true},\n\t\t\t{\n\t\t\t\tid: 'connect',\n\t\t\t\ttext: Loc.getMessage('ADD_MENU_CONNECTION'),\n\t\t\t\tonclick: () => {\n\t\t\t\t\tthis.openInfoConnectionSlider();\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n\n\tgetMenu(bindElement, menuItems)\n\t{\n\t\treturn new (window.top.BX || window.BX).Main.Menu({\n\t\t\tclassName: 'calendar-sync-popup-status',\n\t\t\tbindElement: bindElement,\n\t\t\titems: menuItems,\n\t\t\twidth: this.MENU_WIDTH,\n\t\t\tpadding: this.MENU_PADDING,\n\t\t\tzIndexAbsolute: this.MENU_INDEX,\n\t\t\tautoHide: true,\n\t\t\tcloseByEsc: true,\n\t\t\toffsetTop: 5,\n\t\t\tid: this.getType() + '-menu',\n\t\t});\n\t}\n\n\tsetConnections()\n\t{\n\t\tif (this.connectionsSyncInfo.length > 0)\n\t\t{\n\t\t\tthis.connectionsSyncInfo.forEach((connection) => {\n\t\t\t\tthis.connections.push(ConnectionItem.createInstance({\n\t\t\t\t\tconnectionName: connection.syncInfo.connectionName,\n\t\t\t\t\tstatus: connection.syncInfo.status,\n\t\t\t\t\tconnected: connection.syncInfo.connected,\n\t\t\t\t\taddParams: {\n\t\t\t\t\t\tsections: connection.sections,\n\t\t\t\t\t\tid: connection.syncInfo.id,\n\t\t\t\t\t\tuserName: connection.syncInfo.userName,\n\t\t\t\t\t\tserver: connection.syncInfo.server,\n\t\t\t\t\t},\n\t\t\t\t\ttype: this.type,\n\t\t\t\t\taccountName: this.getAccountName(connection),\n\t\t\t\t}));\n\t\t\t});\n\t\t}\n\t}\n\n\tgetAccountName(connection: any)\n\t{\n\t\treturn connection.syncInfo.connectionName;\n\t}\n\n\tgetFailedConnectionName()\n\t{\n\t\tconst connectionName = this.getFirstFailedConnection().connectionName?.trim();\n\n\t\treturn Type.isStringFilled(connectionName) ? connectionName : super.getFailedConnectionName();\n\t}\n}","import {CaldavConnection} from \"./caldavconnection\";\nimport {Loc} from \"main.core\";\n\nexport class CaldavProvider extends CaldavConnection\n{\n\tconstructor(options)\n\t{\n\t\tsuper({\n\t\t\tstatus: options.status,\n\t\t\tconnected: options.connected,\n\t\t\tgridTitle: Loc.getMessage('CALENDAR_TITLE_CALDAV'),\n\t\t\tgridColor: '#1eae43',\n\t\t\tgridIcon: '/bitrix/images/calendar/sync/caldav.svg',\n\t\t\ttype: 'caldav',\n\t\t\tviewClassification: 'web',\n\t\t\ttemplateClass: 'BX.Calendar.Sync.Interface.CaldavTemplate',\n\t\t});\n\n\t\tthis.connectionsSyncInfo = options.connections;\n\n\t\tif (options.connections && options.connections[0] && options.connections[0].syncInfo)\n\t\t{\n\t\t\tthis.setSyncDate(options.connections[0].syncInfo.syncOffset);\n\t\t}\n\t\tthis.setConnections();\n\t}\n}","import {ConnectionProvider} from \"./connectionprovider\";\nimport {Loc} from \"main.core\";\n\nexport class ExchangeProvider extends ConnectionProvider\n{\n\tconstructor(options)\n\t{\n\t\tsuper({\n\t\t\tstatus: options.syncInfo.status || false,\n\t\t\tconnected: options.syncInfo.connected || false,\n\t\t\tgridTitle: Loc.getMessage('CALENDAR_TITLE_EXCHANGE'),\n\t\t\tgridColor: '#54d0df',\n\t\t\tgridIcon: '/bitrix/images/calendar/sync/exchange.svg',\n\t\t\ttype: 'exchange',\n\t\t\tviewClassification: 'web',\n\t\t\ttemplateClass: 'BX.Calendar.Sync.Interface.ExchangeTemplate',\n\t\t});\n\t\tthis.connectionName = Loc.getMessage('CALENDAR_TITLE_EXCHANGE');\n\n\t\tthis.setSyncDate(options.syncInfo.syncOffset);\n\t\tthis.setSections(options.sections);\n\t\tthis.setConnections();\n\t}\n\n}","import {ConnectionProvider} from \"./connectionprovider\";\nimport {Loc} from \"main.core\";\n\nexport class IphoneProvider extends ConnectionProvider\n{\n\tconstructor(options)\n\t{\n\t\tsuper({\n\t\t\tstatus: options.syncInfo.status,\n\t\t\tconnected: options.syncInfo.connected,\n\t\t\tgridTitle: Loc.getMessage('CALENDAR_TITLE_IPHONE'),\n\t\t\tgridColor: '#2fc6f6',\n\t\t\tgridIcon: '/bitrix/images/calendar/sync/iphone.svg',\n\t\t\ttype: 'iphone',\n\t\t\tviewClassification: 'mobile',\n\t\t\ttemplateClass: 'BX.Calendar.Sync.Interface.IphoneTemplate',\n\t\t});\n\t\tthis.connectionName = Loc.getMessage('CALENDAR_TITLE_IPHONE');\n\n\t\tthis.setSyncDate(options.syncInfo.syncOffset);\n\t\tthis.setConnections();\n\t}\n}","import {ConnectionProvider} from \"./connectionprovider\";\nimport {Loc} from \"main.core\";\n\nexport class MacProvider extends ConnectionProvider\n{\n\tconstructor(options)\n\t{\n\t\tsuper({\n\t\t\tstatus: options.syncInfo.status,\n\t\t\tconnected: options.syncInfo.connected,\n\t\t\tgridTitle: Loc.getMessage('CALENDAR_TITLE_MAC'),\n\t\t\tgridColor: '#ff5752',\n\t\t\tgridIcon: '/bitrix/images/calendar/sync/mac.svg',\n\t\t\ttype: 'mac',\n\t\t\tviewClassification: 'web',\n\t\t\ttemplateClass: 'BX.Calendar.Sync.Interface.MacTemplate',\n\t\t});\n\t\tthis.portalAddress = options.portalAddress;\n\t\tthis.connectionName = Loc.getMessage('CALENDAR_TITLE_MAC');\n\n\t\tthis.setSyncDate(options.syncInfo.syncOffset);\n\t\tthis.setConnections();\n\t}\n\n\tgetPortalAddress()\n\t{\n\t\treturn this.portalAddress;\n\t}\n}","// @flow\n'use strict';\n\nimport {ConnectionProvider} from \"./connectionprovider\";\nimport {Loc} from \"main.core\";\n\nexport class OutlookProvider extends ConnectionProvider\n{\n\tconstructor(options)\n\t{\n\t\tsuper({\n\t\t\tstatus: options.syncInfo.status,\n\t\t\tconnected: options.syncInfo.connected,\n\t\t\tgridTitle: Loc.getMessage('CALENDAR_TITLE_OUTLOOK'),\n\t\t\tgridColor: '#ffa900',\n\t\t\tgridIcon: '/bitrix/images/calendar/sync/outlook.svg',\n\t\t\ttype: 'outlook',\n\t\t\tviewClassification: 'web',\n\t\t\ttemplateClass: 'BX.Calendar.Sync.Interface.OutlookTemplate',\n\t\t});\n\t\tthis.setSyncDate(options.syncInfo.syncOffset);\n\t\tthis.connectionName = Loc.getMessage('CALENDAR_TITLE_OUTLOOK');\n\n\t\tthis.sections = options.sections;\n\t\tthis.infoBySections = options.infoBySections;\n\n\t\tthis.setConnections();\n\t}\n\n\thasMenu()\n\t{\n\t\treturn this.sections.length > 0;\n\t}\n\n\tshowMenu(bindElement)\n\t{\n\t\tif (this.hasMenu())\n\t\t{\n\t\t\tif (this.menu)\n\t\t\t{\n\t\t\t\tthis.menu.destroy();\n\t\t\t}\n\t\t\tconst menuItems = this.getConnection().getSections();\n\n\t\t\tmenuItems.forEach(item =>\n\t\t\t{\n\t\t\t\tif (this.infoBySections[item.id])\n\t\t\t\t{\n\t\t\t\t\titem.className = 'calendar-sync-outlook-popup-item';\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\titem.onclick = () =>\n\t\t\t\t{\n\t\t\t\t\tthis.connectToOutlook(item);\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tthis.menu = new (window.top.BX || window.BX).Main.Menu({\n\t\t\t\tclassName: 'calendar-sync-popup-status',\n\t\t\t\tbindElement: bindElement,\n\t\t\t\titems: menuItems,\n\t\t\t\tpadding: 7,\n\t\t\t\tautoHide: true,\n\t\t\t\tcloseByEsc: true,\n\t\t\t\tzIndexAbsolute: 3020,\n\t\t\t\tid: this.getType() + '-menu',\n\t\t\t\toffsetLeft: -40,\n\t\t\t});\n\n\t\t\tthis.menu.getMenuContainer().addEventListener('click', () =>\n\t\t\t{\n\t\t\t\tthis.menu.close();\n\t\t\t});\n\n\t\t\tthis.menu.show();\n\t\t}\n\t}\n\t\n\tconnectToOutlook(section)\n\t{\n\t\tif (section.id)\n\t\t{\n\t\t\tBX.ajax.runAction('calendar.api.syncajax.getOutlookLink', {\n\t\t\t\tdata: {\n\t\t\t\t\tid: section.id\n\t\t\t\t}\n\t\t\t})\n\t\t\t\t.then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tconst url = response.data.result;\n\t\t\t\t\t\teval(url);\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t}\n\t}\n}","import {CaldavConnection} from \"./caldavconnection\";\nimport {Loc} from \"main.core\";\n\nexport class YandexProvider extends CaldavConnection\n{\n\tconstructor(options)\n\t{\n\t\tsuper({\n\t\t\tstatus: options.status,\n\t\t\tconnected: options.connected,\n\t\t\tgridTitle: Loc.getMessage('CALENDAR_TITLE_YANDEX'),\n\t\t\tgridColor: '#f9c500',\n\t\t\tgridIcon: '/bitrix/images/calendar/sync/yandex.svg',\n\t\t\ttype: 'yandex',\n\t\t\tviewClassification: 'web',\n\t\t\ttemplateClass: 'BX.Calendar.Sync.Interface.YandexTemplate',\n\t\t});\n\n\t\tthis.connectionName = Loc.getMessage('CALENDAR_TITLE_YANDEX');\n\t\tthis.connectionsSyncInfo = options.connections;\n\n\t\tif (options.connections && options.connections[0] && options.connections[0].syncInfo)\n\t\t{\n\t\t\tthis.setSyncDate(options.connections[0].syncInfo.syncOffset);\n\t\t}\n\t\tthis.setConnections();\n\t}\n\n\tgetAccountName(connection: any)\n\t{\n\t\treturn Loc.getMessage('CALENDAR_TITLE_YANDEX');\n\t}\n}","// @flow\n'use strict';\n\nimport {Tag, Loc, Dom, Type} from 'main.core';\nimport {Popup} from 'main.popup';\nimport {EventEmitter} from \"main.core.events\";\n\nexport default class SyncStatusPopup extends EventEmitter\n{\n\tstatic IS_RUN_REFRESH = false;\n\n\tconstructor(options)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Sync.Interface.SyncStatusPopup');\n\t\tthis.connections = options.connections;\n\t\tthis.withUpdateButton = options.withUpdateButton;\n\t\tthis.node = options.node;\n\t\tthis.id = options.id;\n\t\tthis.isGoogleApplicationRefused = options.isGoogleApplicationRefused;\n\n\t\tthis.init();\n\t}\n\n\tstatic createInstance(options)\n\t{\n\t\treturn new this(options)\n\t}\n\n\tinit()\n\t{\n\t\tthis.setPopupContent();\n\t}\n\n\tcreatePopup()\n\t{\n\t\tthis.popup = new Popup({\n\t\t\tclassName: this.id,\n\t\t\tbindElement: this.node,\n\t\t\tcontent: this.container,\n\t\t\tangle: true,\n\t\t\twidth: 360,\n\t\t\toffsetLeft: 60,\n\t\t\toffsetTop: 5,\n\t\t\tpadding: 7,\n\t\t\tdarkMode: true,\n\t\t\tautoHide: true,\n\t\t\tzIndexAbsolute: 3010,\n\t\t});\n\t}\n\n\tshow()\n\t{\n\t\tthis.createPopup();\n\t\tthis.popup.show();\n\t}\n\n\tsetPopupContent()\n\t{\n\t\tthis.container = Tag.render `\n\t\t\t<div class=\"calendar-sync-popup-list\"></div>\n\t\t`;\n\n\t\tthis.connections.forEach(connection => {\n\t\t\tif (connection.getConnectStatus() !== true)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst options = {};\n\n\t\t\toptions.syncTime = this.getFormattedTime(connection.getSyncDate());\n\t\t\toptions.classStatus = connection.getSyncStatus()\n\t\t\t\t? 'calendar-sync-popup-item-status-success'\n\t\t\t\t: 'calendar-sync-popup-item-status-fail'\n\t\t\t;\n\n\t\t\tif (connection.id === 'google' && !connection.getSyncStatus() && this.isGoogleApplicationRefused)\n\t\t\t{\n\t\t\t\toptions.classStatus = 'calendar-sync-popup-item-status-refused';\n\t\t\t\toptions.syncTime = null;\n\t\t\t}\n\n\t\t\toptions.classLable = 'calendar-sync-popup-item-text-' + connection.getClassLabel();\n\t\t\toptions.title = connection.getConnectionName();\n\t\t\tconst block = this.getSyncElement(options);\n\t\t\tthis.container.append(block);\n\t\t});\n\n\n\t\tif (this.withUpdateButton)\n\t\t{\n\t\t\tthis.container.append(this.getContentRefreshBlock());\n\n\t\t\tif (SyncStatusPopup.IS_RUN_REFRESH)\n\t\t\t{\n\t\t\t\tthis.showRefreshStatus();\n\t\t\t}\n\t\t}\n\n\t\treturn this.container;\n\t}\n\n\thide()\n\t{\n\t\tthis.popup.destroy();\n\t}\n\n\tgetContainer()\n\t{\n\t\treturn this.container;\n\t}\n\n\tgetPopup()\n\t{\n\t\treturn this.popup;\n\t}\n\n\tgetFormattedTime(date)\n\t{\n\t\tconst now = new Date();\n\t\tlet timestamp = date;\n\t\tif (Type.isDate(date))\n\t\t{\n\t\t\ttimestamp = Math.round(date.getTime() / 1000);\n\t\t\tlet secondsAgo = parseInt((now - date) / 1000);\n\t\t\tif (secondsAgo < 60)\n\t\t\t{\n\t\t\t\treturn Loc.getMessage('CAL_JUST');\n\t\t\t}\n\t\t}\n\n\t\treturn BX.date.format(\n\t\t\t[\n\t\t\t\t[\"tommorow\", \"tommorow, H:i:s\"],\n\t\t\t\t[\"i\" , \"iago\"],\n\t\t\t\t[\"H\", \"Hago\"],\n\t\t\t\t[\"d\", \"dago\"],\n\t\t\t\t[\"m100\", \"mago\"],\n\t\t\t\t[\"m\", \"mago\"],\n\t\t\t\t[\"-\", \"\"]\n\t\t\t],\n\t\t\ttimestamp\n\t\t);\n\t}\n\n\tgetSyncElement(options)\n\t{\n\t\treturn Tag.render `\n\t\t\t\t<div class=\"calendar-sync-popup-item\">\n\t\t\t\t\t<span class=\"calendar-sync-popup-item-text ${options.classLable}\">${BX.util.htmlspecialchars(options.title)}</span>\n\t\t\t\t\t<div class=\"calendar-sync-popup-item-detail\">\n\t\t\t\t\t\t<span class=\"calendar-sync-popup-item-time\">${options.syncTime}</span>\n\t\t\t\t\t\t<span class=\"calendar-sync-popup-item-status ${options.classStatus}\"></span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t`;\n\t}\n\n\trefresh(connections)\n\t{\n\t\tthis.connections = connections;\n\t\tthis.popup.setContent(this.setPopupContent());\n\t\tthis.setRefreshStatusBlock();\n\t}\n\n\tsetRefreshStatusBlock()\n\t{\n\t\tsetTimeout(() => {\n\t\t\tthis.removeRefreshStatusBlock();\n\t\t\tthis.enableRefreshButton();\n\t\t\tSyncStatusPopup.IS_RUN_REFRESH = false;\n\t\t}, 120000);\n\t}\n\n\tremoveRefreshStatusBlock()\n\t{\n\t\tif (Type.isElementNode(this.refreshStatusBlock))\n\t\t{\n\t\t\tthis.refreshStatusBlock.remove();\n\t\t}\n\t}\n\n\tenableRefreshButton()\n\t{\n\t\tif (Type.isElementNode(this.refreshButton))\n\t\t{\n\t\t\tthis.refreshButton.className = 'calendar-sync-popup-footer-btn';\n\t\t}\n\t}\n\n\tdisableRefreshButton()\n\t{\n\t\tif (Type.isElementNode(this.refreshButton))\n\t\t{\n\t\t\tthis.refreshButton.className = 'calendar-sync-popup-footer-btn calendar-sync-popup-footer-btn-disabled';\n\t\t}\n\t}\n\n\tgetContentRefreshBlock()\n\t{\n\t\tthis.footerWrapper = Tag.render`\n\t\t\t<div class=\"calendar-sync-popup-footer-wrap\">\n\t\t\t\t${this.getContentRefreshButton()}\n\t\t\t</div>\n\t\t`;\n\n\t\treturn this.footerWrapper;\n\t}\n\n\tgetContentRefreshButton()\n\t{\n\t\tthis.refreshButton = Tag.render`\n\t\t\t<button class=\"calendar-sync-popup-footer-btn\">${Loc.getMessage('CAL_REFRESH')}</button>\n\t\t`;\n\n\t\tthis.refreshButton.addEventListener('click', () => {\n\t\t\tDom.addClass(this.refreshButton, 'calendar-sync-popup-footer-btn-load');\n\t\t\tSyncStatusPopup.IS_RUN_REFRESH = true;\n\t\t\tthis.refreshButton.innerText = Loc.getMessage('CAL_REFRESHING');\n\t\t\tthis.runRefresh();\n\t\t});\n\n\t\treturn this.refreshButton;\n\t}\n\n\tshowRefreshStatus()\n\t{\n\t\tthis.disableRefreshButton();\n\t\tthis.footerWrapper.prepend(this.getRefreshStatus());\n\t}\n\n\tgetRefreshStatus()\n\t{\n\t\tthis.refreshStatusBlock = Tag.render`\n\t\t\t<span class=\"calendar-sync-popup-footer-status\">${Loc.getMessage('CAL_REFRESH_JUST')}</span>\n\t\t`;\n\n\t\treturn this.refreshStatusBlock;\n\t}\n\n\trunRefresh()\n\t{\n\t\tthis.emit('onRefresh', {});\n\t}\n\n\tgetId()\n\t{\n\t\treturn this.id;\n\t}\n}","// @flow\n\nimport SyncButton from './controls/syncbutton';\nimport {EventEmitter} from \"main.core.events\";\nimport {GoogleProvider} from \"./connectionproviders/googleprovider\";\nimport {Office365Provider} from \"./connectionproviders/office365provider\";\nimport {ICloudProvider} from \"./connectionproviders/icloudprovider\";\nimport {AndroidProvider} from \"./connectionproviders/androidprovider\";\nimport {CaldavConnection} from \"./connectionproviders/caldavconnection\";\nimport {CaldavProvider} from \"./connectionproviders/caldavprovider\";\nimport {ExchangeProvider} from \"./connectionproviders/exchangeprovider\";\nimport {IphoneProvider} from \"./connectionproviders/iphoneprovider\";\nimport {MacProvider} from \"./connectionproviders/macprovider\";\nimport {OutlookProvider} from \"./connectionproviders/outlookprovider\";\nimport {YandexProvider} from \"./connectionproviders/yandexprovider\";\nimport SyncStatusPopup from \"./controls/syncstatuspopup\";\nimport {Util} from \"calendar.util\";\nimport { Runtime } from 'main.core';\n\ntype ManagerOptions = {\n\tcalendar: any,\n\twrapper: string,\n\tsyncInfo: any,\n\tuserId: number,\n\tsyncLinks: any,\n\tsections: any,\n\tportalAddress: string,\n\tisRuZone: boolean,\n\tcalendarInstance: window.BXEventCalendar.Core,\n\tisSetSyncGoogleSettings: boolean,\n\tisSetSyncOffice365Settings: boolean,\n\tpayAttentionToNewSharingFeature: boolean,\n};\n\nexport default class Manager extends EventEmitter\n{\n\tstatus = 'not_connected';\n\tSTATUS_SUCCESS = 'success';\n\tSTATUS_FAILED = 'failed';\n\tSTATUS_REFUSED = 'refused';\n\tSTATUS_NOT_CONNECTED = 'not_connected';\n\tWIZARD_SYNC_MODE = 'wizard_sync_mode';\n\tSTATUS_SYNCHRONIZING = 'synchronizing';\n\tWAITING_MODE_PERIODIC_TIMEOUT = 5000;\n\tREFRESH_DELAY = 300;\n\tREFRESH_CONTENT_DELAY = 300;\n\tWIZARD_SLIDER_PREFIX = 'calendar:sync-wizard';\n\n\tconstructor(options: ManagerOptions)\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace('BX.Calendar.Sync.Manager.Manager');\n\n\t\tthis.isGoogleApplicationRefused = options.calendar.util.config.isGoogleApplicationRefused === 'Y';\n\t\tthis.showGoogleApplicationRefused = options.calendar.util.config.showGoogleApplicationRefused === 'Y';\n\t\tthis.wrapper = options.wrapper;\n\t\tthis.setSyncInfo(options.syncInfo);\n\t\tthis.userId = options.userId;\n\t\tthis.syncLinks = options.syncLinks;\n\t\tthis.sections = options.sections;\n\t\tthis.portalAddress = options.portalAddress;\n\t\tthis.isRuZone = options.isRuZone;\n\t\tthis.calendarInstance = options.calendar;\n\t\tthis.isSetSyncGoogleSettings = options.isSetSyncGoogleSettings;\n\t\tthis.isSetSyncOffice365Settings = options.isSetSyncOffice365Settings;\n\t\tthis.refreshDebounce = Runtime.debounce(this.refresh, this.REFRESH_DELAY, this);\n\t\tthis.refreshContentDebounce = Runtime.debounce(this.refreshContent, this.REFRESH_CONTENT_DELAY, this);\n\t\tthis.payAttentionToNewSharingFeature = options.payAttentionToNewSharingFeature;\n\n\t\tthis.init();\n\t\tthis.subscribeOnEvent();\n\t}\n\n\tsubscribeOnEvent()\n\t{\n\t\tEventEmitter.subscribe('BX.Calendar.Sync.Interface.SyncStatusPopup:onRefresh', event => {\n\t\t\tthis.refreshDebounce(event);\n\t\t});\n\n\t\tEventEmitter.subscribe('BX.Calendar.Sync.Interface.InterfaceTemplate:onRefresh', (event) => {\n\t\t\tthis.onRefresh(event.data.data, event.data.event);\n\t\t});\n\n\t\tEventEmitter.subscribe('BX.Calendar.Sync.Interface.InterfaceTemplate:reDrawCalendarGrid', event => {\n\t\t\tthis.reDrawCalendarGrid();\n\t\t});\n\n\t\twindow.addEventListener('message', (event) => {\n\t\t\tif (event.data.title === 'googleOAuthSuccess')\n\t\t\t{\n\t\t\t\twindow.location.reload()\n\t\t\t}\n\t\t});\n\t}\n\n\tshowSyncButton()\n\t{\n\t\tthis.syncButton = new SyncButton({\n\t\t\tstatus: this.status,\n\t\t\twrapper: this.wrapper,\n\t\t\tconnectionsProviders: this.connectionsProviders,\n\t\t\tuserId: this.userId,\n\t\t\tisGoogleApplicationRefused: this.isGoogleApplicationRefused,\n\t\t\tcounters: this.syncInfo.counters ?? {},\n\t\t\tpayAttentionToNewSharingFeature: this.payAttentionToNewSharingFeature,\n\t\t});\n\t\tthis.syncButton.show();\n\n\t\tif (this.needToShowGoogleRefusedPopup())\n\t\t{\n\t\t\tthis.syncButton.showGoogleApplicationRefusedPopup();\n\t\t\tthis.showGoogleApplicationRefused = false;\n\t\t}\n\t}\n\n\tinit()\n\t{\n\t\tthis.connectionsProviders = {};\n\t\tconst yandexConnections = [];\n\t\tconst caldavConnections = [];\n\n\t\tconst syncInfo = this.syncInfo;\n\t\tthis.sectionsByType = this.sortSections();\n\n\t\tfor (let key in syncInfo)\n\t\t{\n\t\t\tif (syncInfo.hasOwnProperty(key))\n\t\t\t{\n\t\t\t\tswitch (syncInfo[key].type)\n\t\t\t\t{\n\t\t\t\t\tcase 'yandex':\n\t\t\t\t\t\tyandexConnections.push({\n\t\t\t\t\t\t\tsyncInfo: syncInfo[key],\n\t\t\t\t\t\t\tsections: this.sectionsByType.caldav['caldav' + syncInfo[key].id],\n\t\t\t\t\t\t\tisRuZone: this.isRuZone,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'caldav':\n\t\t\t\t\t\tcaldavConnections.push({\n\t\t\t\t\t\t\tsyncInfo: syncInfo[key],\n\t\t\t\t\t\t\tsections: this.sectionsByType.caldav['caldav' + syncInfo[key].id],\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.connectionsProviders = {\n\t\t\tgoogle: this.getGoogleProvider(),\n\t\t\ticloud: this.getIcloudProvider(),\n\t\t\toffice365: this.getOffice365Provider(),\n\t\t\tcaldav: this.getCaldavProvider(caldavConnections),\n\t\t\tiphone: this.getIphoneProvider(),\n\t\t\tandroid: this.getAndroidProvider(),\n\t\t\tmac: this.getMacProvider(),\n\t\t};\n\n\t\tif (this.isRuZone)\n\t\t{\n\t\t\tthis.connectionsProviders.yandex = this.getYandexProvider(yandexConnections);\n\t\t}\n\n\t\tif (!BX.browser.IsMac() && syncInfo.hasOwnProperty('outlook'))\n\t\t{\n\t\t\tthis.connectionsProviders.outlook = this.getOutlookProvider();\n\t\t}\n\n\t\tif (syncInfo.hasOwnProperty('exchange'))\n\t\t{\n\t\t\tthis.connectionsProviders.exchange = this.getExchangeProvider();\n\t\t}\n\n\t\tthis.status = this.getSummarySyncStatus();\n\t\tthis.subscribeEventHandlers();\n\t}\n\n\tsetSyncMode(value)\n\t{\n\t\tthis.syncMode = value;\n\t}\n\n\tgetSyncMode()\n\t{\n\t\treturn this.syncMode;\n\t}\n\n\tisWizardSyncMode()\n\t{\n\t\tfor (let providerName in this.connectionsProviders)\n\t\t{\n\t\t\tif (this.connectionsProviders.hasOwnProperty(providerName)\n\t\t\t\t&& this.connectionsProviders[providerName].getWizardSyncMode())\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tisSyncInProcess()\n\t{\n\t\tfor (let providerName in this.connectionsProviders)\n\t\t{\n\t\t\tif (\n\t\t\t\tthis.connectionsProviders.hasOwnProperty(providerName)\n\t\t\t\t&& this.connectionsProviders[providerName].getSyncStatus() === this.STATUS_SYNCHRONIZING\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tsortSections()\n\t{\n\t\tconst sections = this.sections;\n\t\tconst exchangeSections = [];\n\t\tconst googleSections = [];\n\t\tconst icloudSections = [];\n\t\tconst sectionsByType = {};\n\t\tconst outlookSections = [];\n\t\tconst office365Sections = [];\n\t\tsectionsByType.caldav = {};\n\n\t\tsections.forEach(section => {\n\t\t\tif (\n\t\t\t\tsection.belongsToView()\n\t\t\t\t&& section.data.OUTLOOK_JS\n\t\t\t\t&& section.data['EXTERNAL_TYPE'] === 'local'\n\t\t\t)\n\t\t\t{\n\t\t\t\toutlookSections.push({\n\t\t\t\t\tid: section.id,\n\t\t\t\t\tconnectURL: section.data.OUTLOOK_JS,\n\t\t\t\t\ttext: section.name,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (section.data['IS_EXCHANGE'] === true)\n\t\t\t{\n\t\t\t\texchangeSections.push(section.data);\n\t\t\t}\n\t\t\telse if (\n\t\t\t\tsection.data['GAPI_CALENDAR_ID']\n\t\t\t\t&& section.data['CAL_DAV_CON']\n\t\t\t\t&& section.data['EXTERNAL_TYPE'] !== 'local'\n\t\t\t)\n\t\t\t{\n\t\t\t\tgoogleSections.push(section.data);\n\t\t\t}\n\t\t\telse if (section.data['EXTERNAL_TYPE'] === 'icloud')\n\t\t\t{\n\t\t\t\ticloudSections.push(section.data);\n\t\t\t}\n\t\t\telse if (section.data['EXTERNAL_TYPE'] === 'office365')\n\t\t\t{\n\t\t\t\toffice365Sections.push(section.data);\n\t\t\t}\n\t\t\telse if (section.data['CAL_DAV_CON'] && section.data['CAL_DAV_CAL'])\n\t\t\t{\n\t\t\t\tsectionsByType.caldav['caldav' + section.data['CAL_DAV_CON']] = section.data;\n\t\t\t}\n\t\t});\n\n\t\tsectionsByType.google = googleSections;\n\t\tsectionsByType.icloud = icloudSections;\n\t\tsectionsByType.office365 = office365Sections;\n\t\tsectionsByType.exchange = exchangeSections;\n\t\tsectionsByType.outlook = outlookSections;\n\n\t\treturn sectionsByType;\n\t}\n\n\trefresh(event)\n\t{\n\t\treturn new Promise((resolve) => {\n\t\t\tBX.ajax.runAction('calendar.api.syncajax.updateConnection', {\n\t\t\t\tdata: {\n\t\t\t\t\ttype: 'user',\n\t\t\t\t\trequestUid: Util.registerRequestId(),\n\t\t\t\t}\n\t\t\t}).then((response) => {\n\t\t\t\tthis.onRefresh(response.data, event);\n\t\t\t\tresolve();\n\t\t\t});\n\t\t});\n\t}\n\n\tonRefresh(data, event = {})\n\t{\n\t\tthis.setSyncInfo(data);\n\t\tthis.status = this.getSummarySyncStatus();\n\n\t\tif (this.needToShowGoogleRefusedPopup())\n\t\t{\n\t\t\tthis.syncButton.showGoogleApplicationRefusedPopup();\n\t\t\tthis.showGoogleApplicationRefused = false;\n\t\t}\n\n\t\tconst activePopup = (event && event.getTarget) ? event.getTarget() : null;\n\t\tthis.refreshContent(activePopup, event);\n\t}\n\n\trefreshContent(activePopup = {}, event = {})\n\t{\n\t\tthis.init();\n\n\t\tthis.refreshCalendarGrid();\n\n\t\tif (this.syncButton)\n\t\t{\n\t\t\tthis.syncButton.refresh(this.status, this.syncInfo.counters);\n\t\t\tthis.syncButton.setConnectionProviders(this.connectionsProviders);\n\t\t}\n\n\t\tif (activePopup)\n\t\t{\n\t\t\tthis.refreshActivePopup(activePopup);\n\t\t\tthis.refreshOpenSliders(activePopup);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.refreshOpenSliders({}, event);\n\t\t}\n\t}\n\n\trefreshCalendarGrid()\n\t{\n\t\tthis.calendarInstance.reload();\n\t}\n\n\trefreshActivePopup(activePopup)\n\t{\n\t\tif (activePopup instanceof SyncStatusPopup && activePopup.getId() === 'calendar-syncPanel-status')\n\t\t{\n\t\t\tactivePopup.refresh(this.getConnections());\n\t\t}\n\t\telse if (this.syncButton.popup instanceof SyncStatusPopup && this.syncButton.popup.getId() === 'calendar-sync-button-status')\n\t\t{\n\t\t\tthis.syncButton.popup.refresh(this.getConnections());\n\t\t}\n\t}\n\n\trefreshOpenSliders(activePopup = {}, event = {})\n\t{\n\t\tconst openSliders = BX.SidePanel.Instance.getOpenSliders();\n\t\tif (openSliders.length > 0)\n\t\t{\n\t\t\topenSliders.forEach((slider) => {\n\t\t\t\tif (slider.getUrl() === 'calendar:auxiliary-sync-slider')\n\t\t\t\t{\n\t\t\t\t\tthis.refreshMainSlider(this.syncButton.getSyncPanel());\n\t\t\t\t}\n\t\t\t\telse if (slider.getUrl() === 'calendar:sync-slider' && event.doRefreshMainSlider)\n\t\t\t\t{\n\t\t\t\t\tthis.refreshMainSlider(this.syncButton.getSyncPanel());\n\t\t\t\t}\n\t\t\t\telse if (slider.getUrl().indexOf('calendar:item-sync-') !== -1)\n\t\t\t\t{\n\t\t\t\t\tthis.refreshConnectionSlider(slider, activePopup);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\trefreshConnectionSlider(slider, activePopup)\n\t{\n\t\tlet updatedConnection = undefined;\n\t\tconst itemInterface = slider.getData().get('itemInterface');\n\t\tconst connection = slider.getData().get('connection');\n\t\tif (connection)\n\t\t{\n\t\t\tupdatedConnection = this.connectionsProviders[connection.getType()].getConnectionById(connection.getId());\n\t\t}\n\n\t\tif (activePopup instanceof SyncStatusPopup && updatedConnection)\n\t\t{\n\t\t\tactivePopup.refresh([updatedConnection]);\n\t\t}\n\n\t\tif (itemInterface && updatedConnection)\n\t\t{\n\t\t\titemInterface.refresh(updatedConnection);\n\t\t}\n\n\t\tslider.reload();\n\t}\n\n\trefreshMainSlider(syncPanel)\n\t{\n\t\tsyncPanel.refresh(this.status, this.connectionsProviders);\n\t}\n\n\tgetConnections()\n\t{\n\t\tconst connections = [];\n\t\tconst items = Object.values(this.connectionsProviders);\n\n\t\titems.forEach(item => {\n\t\t\tconst itemConnections = item.getConnections();\n\t\t\tif (itemConnections.length > 0)\n\t\t\t{\n\t\t\t\titemConnections.forEach(connection => {\n\t\t\t\t\t\tif (connection.getConnectStatus() === true)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconnections.push(connection);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t});\n\n\t\treturn connections;\n\t}\n\n\treDrawCalendarGrid()\n\t{\n\t\tthis.calendarInstance.reloadDebounce();\n\t}\n\n\tupdateSyncStatus(params)\n\t{\n\t\tfor (let connectionName in params.syncInfo)\n\t\t{\n\t\t\tif (\n\t\t\t\tparams.syncInfo.hasOwnProperty(connectionName)\n\t\t\t\t&& this.syncInfo[connectionName]\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.syncInfo[connectionName] = {\n\t\t\t\t\t...this.syncInfo[connectionName],\n\t\t\t\t\t...params.syncInfo[connectionName]\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tthis.status = this.STATUS_SUCCESS;\n\t\tthis.refreshContentDebounce();\n\t}\n\n\taddSyncConnection(params)\n\t{\n\t\tfor (const connectionName in params.syncInfo)\n\t\t{\n\t\t\tif (['yandex', 'caldav'].includes(params.syncInfo[connectionName].type))\n\t\t\t{\n\t\t\t\tBX.reload();\n\t\t\t}\n\n\t\t\tif (BX.Calendar.Util.checkRequestId(params.requestUid))\n\t\t\t{\n\t\t\t\tif (this.syncInfo[connectionName])\n\t\t\t\t{\n\t\t\t\t\tthis.syncInfo[connectionName] = {\n\t\t\t\t\t\t...this.syncInfo[connectionName],\n\t\t\t\t\t\t...params.syncInfo[connectionName]\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.status = this.STATUS_SUCCESS;\n\t\tthis.refreshContentDebounce();\n\t}\n\n\tdeleteSyncConnection(params)\n\t{\n\t\tif (!BX.Calendar.Util.checkRequestId(params.requestUid))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (params.connectionId)\n\t\t{\n\t\t\tfor (const connectionName in this.syncInfo)\n\t\t\t{\n\t\t\t\tif (this.syncInfo.hasOwnProperty(connectionName)\n\t\t\t\t\t&& this.syncInfo[connectionName]\n\t\t\t\t\t&& parseInt(this.syncInfo[connectionName].id) === parseInt(params.connectionId))\n\t\t\t\t{\n\t\t\t\t\tdelete this.syncInfo[connectionName];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (params.syncInfo)\n\t\t{\n\t\t\tfor (const connectionName in params.syncInfo)\n\t\t\t{\n\t\t\t\tif (this.syncInfo[connectionName])\n\t\t\t\t{\n\t\t\t\t\tdelete this.syncInfo[connectionName];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.status !== this.STATUS_NOT_CONNECTED)\n\t\t{\n\t\t\tthis.status = this.STATUS_SUCCESS;\n\t\t}\n\t\tthis.refreshDebounce();\n\t}\n\n\tgetProviderById(id): Array\n\t{\n\t\tlet connection;\n\t\tfor (let providerName in this.connectionsProviders)\n\t\t{\n\t\t\tif (\n\t\t\t\tthis.connectionsProviders.hasOwnProperty(providerName)\n\t\t\t\t&& this.connectionsProviders[providerName].connected\n\t\t\t\t&& ['google', 'caldav', 'yandex', 'icloud', 'office365'].includes(providerName)\n\t\t\t)\n\t\t\t{\n\t\t\t\tconnection = this.connectionsProviders[providerName].getConnectionById(id);\n\t\t\t\tif (connection)\n\t\t\t\t{\n\t\t\t\t\treturn [this.connectionsProviders[providerName], connection];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn [undefined, undefined];\n\t}\n\n\tprocessSyncConnection(params)\n\t{\n\t\tfor (let providerName in this.connectionsProviders)\n\t\t{\n\t\t\tif (\n\t\t\t\tthis.connectionsProviders.hasOwnProperty(providerName)\n\t\t\t\t&& this.connectionsProviders[providerName].getWizardSyncMode()\n\t\t\t\t&& providerName === params?.vendorName\n\t\t\t)\n\t\t\t{\n\t\t\t\tif (params.accountName)\n\t\t\t\t{\n\t\t\t\t\tthis.connectionsProviders[providerName].setUserName(params.accountName);\n\t\t\t\t}\n\t\t\t\tthis.connectionsProviders[providerName].setWizardState(params);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\thandlePullEvent(params)\n\t{\n\t\tlet wizardSyncMode = this.isWizardSyncMode();\n\t\tswitch (params.command)\n\t\t{\n\t\t\tcase 'refresh_sync_status':\n\t\t\t\tif (!wizardSyncMode)\n\t\t\t\t{\n\t\t\t\t\tthis.updateSyncStatus(params);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'add_sync_connection':\n\t\t\t\tif (!wizardSyncMode)\n\t\t\t\t{\n\t\t\t\t\tthis.addSyncConnection(params);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'delete_sync_connection':\n\t\t\t\tif (!wizardSyncMode)\n\t\t\t\t{\n\t\t\t\t\tthis.deleteSyncConnection(params);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'process_sync_connection':\n\t\t\t\tif (wizardSyncMode)\n\t\t\t\t{\n\t\t\t\t\tthis.processSyncConnection(params);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tsetSyncInfo(syncInfo)\n\t{\n\t\tthis.syncInfo = syncInfo;\n\t}\n\n\tsubscribeEventHandlers()\n\t{\n\t\tfor (let providerName in this.connectionsProviders)\n\t\t{\n\t\t\tif (this.connectionsProviders.hasOwnProperty(providerName))\n\t\t\t{\n\t\t\t\tthis.connectionsProviders[providerName].unsubscribeAll('onStartWaitingMode');\n\t\t\t\tthis.connectionsProviders[providerName].unsubscribeAll('onEndWaitingMode');\n\t\t\t\tthis.connectionsProviders[providerName].unsubscribeAll('onCloseSyncWizard');\n\n\t\t\t\tthis.connectionsProviders[providerName].subscribe(\n\t\t\t\t\t'onStartWaitingMode',\n\t\t\t\t\tthis.handleStartWaitingMode.bind(this)\n\t\t\t\t);\n\t\t\t\tthis.connectionsProviders[providerName].subscribe(\n\t\t\t\t\t'onEndWaitingMode',\n\t\t\t\t\tthis.handleEndWaitingMode.bind(this)\n\t\t\t\t);\n\n\t\t\t\tthis.connectionsProviders[providerName].subscribe(\n\t\t\t\t\t'onCloseSyncWizard',\n\t\t\t\t\tthis.handleCloseSyncWizard.bind(this)\n\t\t\t\t);\n\n\t\t\t\tthis.connectionsProviders[providerName].subscribe(\n\t\t\t\t\t'onReconnecting',\n\t\t\t\t\tthis.handleReconnecting.bind(this),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\thandleCloseSyncWizard()\n\t{\n\t\tif (this.isSyncInProcess())\n\t\t{\n\t\t\tif (this.syncButton)\n\t\t\t{\n\t\t\t\tthis.syncButton.refresh(this.STATUS_SYNCHRONIZING);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.refreshContentDebounce();\n\t\t}\n\t}\n\n\thandleReconnecting()\n\t{\n\t\tif (this.isSyncInProcess() && this.syncButton)\n\t\t{\n\t\t\tthis.syncButton.refresh(this.STATUS_SYNCHRONIZING);\n\t\t}\n\t}\n\n\thandleStartWaitingMode()\n\t{\n\t\tthis.doPeriodicRefresh();\n\t}\n\n\thandleEndWaitingMode()\n\t{\n\t\tthis.stopPeriodicRefresh();\n\t}\n\n\tdoPeriodicRefresh()\n\t{\n\t\tif (!this.hasOpenedWizard())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (Util.documentIsDisplayingNow())\n\t\t{\n\t\t\tthis.refresh()\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.refreshTimeout = setTimeout(\n\t\t\t\t\t\tthis.doPeriodicRefresh.bind(this),\n\t\t\t\t\t\tthis.WAITING_MODE_PERIODIC_TIMEOUT\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.refreshTimeout = setTimeout(\n\t\t\t\tthis.doPeriodicRefresh.bind(this),\n\t\t\t\tthis.WAITING_MODE_PERIODIC_TIMEOUT\n\t\t\t);\n\t\t}\n\t}\n\n\tstopPeriodicRefresh()\n\t{\n\t\tif (this.refreshTimeout)\n\t\t{\n\t\t\tclearInterval(this.refreshTimeout);\n\t\t\tthis.refreshTimeout = null;\n\t\t}\n\t}\n\n\topenSyncPanel()\n\t{\n\t\tthis.syncButton.handleClick();\n\t}\n\n\tgetSummarySyncStatus()\n\t{\n\t\tlet status = this.STATUS_NOT_CONNECTED;\n\n\t\tif (this.isStatusFailed())\n\t\t{\n\t\t\treturn this.STATUS_FAILED;\n\t\t}\n\n\t\tfor (let providerName in this.connectionsProviders)\n\t\t{\n\t\t\tif (this.connectionsProviders.hasOwnProperty(providerName))\n\t\t\t{\n\t\t\t\tif ([this.STATUS_SUCCESS].includes(this.connectionsProviders[providerName].getStatus()))\n\t\t\t\t{\n\t\t\t\t\tstatus = this.connectionsProviders[providerName].getStatus();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (status === this.STATUS_NOT_CONNECTED && this.hasRefusedStatus())\n\t\t{\n\t\t\tstatus = this.STATUS_REFUSED;\n\t\t}\n\n\t\treturn status;\n\t}\n\n\tisStatusFailed()\n\t{\n\t\tfor (const providerName in this.connectionsProviders)\n\t\t{\n\t\t\tif (Object.prototype.hasOwnProperty.call(this.connectionsProviders, providerName))\n\t\t\t{\n\t\t\t\tif (this.STATUS_FAILED === this.connectionsProviders[providerName].getStatus())\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tneedToShowGoogleRefusedPopup()\n\t{\n\t\treturn this.syncButton && this.isGoogleApplicationRefused && this.showGoogleApplicationRefused && this.hasRefusedStatus();\n\t}\n\n\thasRefusedStatus()\n\t{\n\t\tfor (const providerName in this.connectionsProviders)\n\t\t{\n\t\t\tif (this.connectionsProviders.hasOwnProperty(providerName))\n\t\t\t{\n\t\t\t\tif (this.connectionsProviders[providerName].getStatus() === this.STATUS_REFUSED)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tgetGoogleProvider()\n\t{\n\t\tif (!this.googleProvider)\n\t\t{\n\t\t\tthis.googleProvider = GoogleProvider.createInstance({\n\t\t\t\tsyncInfo: this.syncInfo.google || {},\n\t\t\t\tsections: this.sectionsByType.google || {},\n\t\t\t\tsyncLink: this.syncLinks.google || null,\n\t\t\t\tisSetSyncGoogleSettings: this.isSetSyncGoogleSettings,\n\t\t\t\tmainPanel: true,\n\t\t\t\tisGoogleApplicationRefused: this.isGoogleApplicationRefused,\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.googleProvider.refresh({\n\t\t\t\tsyncInfo: this.syncInfo.google || {},\n\t\t\t\tsections: this.sectionsByType.google || {},\n\t\t\t\tsyncLink: this.syncLinks.google || null,\n\t\t\t});\n\t\t}\n\n\t\treturn this.googleProvider;\n\t}\n\n\tgetOffice365Provider()\n\t{\n\t\tif (!this.office365Provider)\n\t\t{\n\t\t\tthis.office365Provider = Office365Provider.createInstance({\n\t\t\t\tsyncInfo: this.syncInfo.office365 || {},\n\t\t\t\tsections: this.sectionsByType.office365 || {},\n\t\t\t\tsyncLink: this.syncLinks.office365 || null,\n\t\t\t\tisSetSyncOffice365Settings: this.isSetSyncOffice365Settings,\n\t\t\t\tmainPanel: true,\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.office365Provider.refresh({\n\t\t\t\tsyncInfo: this.syncInfo.office365 || {},\n\t\t\t\tsections: this.sectionsByType.office365 || {},\n\t\t\t\tsyncLink: this.syncLinks.office365 || null,\n\t\t\t});\n\t\t}\n\n\t\treturn this.office365Provider;\n\t}\n\n\tgetIcloudProvider()\n\t{\n\t\tif (!this.icloudProvider)\n\t\t{\n\t\t\tthis.icloudProvider = ICloudProvider.createInstance({\n\t\t\t\tsyncInfo: this.syncInfo.icloud || {},\n\t\t\t\tsections: this.sectionsByType.icloud || {},\n\t\t\t\tmainPanel: true,\n\t\t\t});\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.icloudProvider.refresh({\n\t\t\t\tsyncInfo: this.syncInfo.icloud || {},\n\t\t\t\tsections: this.sectionsByType.icloud || {},\n\t\t\t})\n\t\t}\n\n\t\treturn this.icloudProvider;\n\t}\n\n\tgetCaldavProvider(caldavConnections)\n\t{\n\t\treturn CaldavProvider.createInstance({\n\t\t\tstatus: CaldavConnection.calculateStatus(caldavConnections),\n\t\t\tconnected: (caldavConnections.length > 0),\n\t\t\tconnections: caldavConnections,\n\t\t});\n\t}\n\n\tgetIphoneProvider()\n\t{\n\t\treturn IphoneProvider.createInstance({\n\t\t\tsyncInfo: this.syncInfo.iphone,\n\t\t});\n\t}\n\n\tgetAndroidProvider()\n\t{\n\t\treturn AndroidProvider.createInstance({\n\t\t\tsyncInfo: this.syncInfo.android,\n\t\t});\n\t}\n\n\tgetMacProvider()\n\t{\n\t\treturn MacProvider.createInstance({\n\t\t\tsyncInfo: this.syncInfo.mac,\n\t\t\tportalAddress: this.portalAddress,\n\t\t});\n\t}\n\n\tgetYandexProvider(yandexConnections)\n\t{\n\t\treturn YandexProvider.createInstance({\n\t\t\tstatus: CaldavConnection.calculateStatus(yandexConnections),\n\t\t\tconnected: (yandexConnections.length > 0),\n\t\t\tconnections: yandexConnections,\n\t\t});\n\t}\n\n\tgetOutlookProvider()\n\t{\n\t\treturn OutlookProvider.createInstance({\n\t\t\tsyncInfo: this.syncInfo.outlook,\n\t\t\tsections: this.sectionsByType.outlook,\n\t\t\tinfoBySections: this.syncInfo.outlook.infoBySections || {},\n\t\t});\n\t}\n\n\tgetExchangeProvider()\n\t{\n\t\treturn ExchangeProvider.createInstance({\n\t\t\tsyncInfo: this.syncInfo.exchange,\n\t\t\tsections: this.sectionsByType.exchange\n\t\t})\n\t}\n\n\thasOpenedWizard()\n\t{\n\t\tconst sliderList = BX.SidePanel.Instance.getOpenSliders();\n\t\tfor (let i in sliderList)\n\t\t{\n\t\t\tif (\n\t\t\t\tsliderList.hasOwnProperty(i)\n\t\t\t\t&& sliderList[i].getUrl().indexOf(this.WIZARD_SLIDER_PREFIX) !== -1\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}"],"names":["isConnectionItemProperty","Symbol","for","ConnectionItem","constructor","options","syncDate","Type","isDate","Date","connectionName","status","connected","addParams","type","id","userName","accountName","createInstance","isConnectionItem","target","isObject","getSyncDate","getConnectionName","getSyncStatus","getConnectStatus","getStatus","getClassLabel","getSections","sections","getId","getConnectionAccountName","getType","setId","setStatus","setUserName","setConnected","setSyncDate","getAccountName","ConnectionProvider","EventEmitter","MENU_WIDTH","MENU_PADDING","MENU_INDEX","SLIDER_WIDTH","STATUS_SYNCHRONIZING","STATUS_SUCCESS","STATUS_FAILED","STATUS_REFUSED","STATUS_PENDING","STATUS_NOT_CONNECTED","ERROR_CODE","STATUS_LIST","WAITING_MODE_MAX_TIME","setEventNamespace","connectionOriginalName","mainPanel","pendingStatus","gridTitle","gridColor","gridIcon","viewClassification","templateClass","connections","isStartedReconnecting","isActive","hasMenu","doSupportReconnectionScenario","setAdditionalParams","additionalParams","offset","parseInt","getTime","isNaN","getConnection","setSections","includes","getGridTitle","getGridColor","getGridIcon","clearConnections","setConnections","push","setInterfaceUnit","interfaceUnit","getInterfaceUnit","getConnections","getName","getViewClassification","getWizardSyncMode","isGoogleApplicationRefused","getTemplateClass","openSlider","BX","SidePanel","Instance","open","sliderId","contentCallback","slider","Promise","resolve","reject","content","data","cacheable","width","allowChangeHistory","events","onLoad","event","itemSlider","getSlider","closeSlider","close","openInfoConnectionSlider","connection","getClassTemplateItem","getInfoConnectionContent","provider","openActiveConnectionSlider","itemInterface","getSectionsForGoogle","then","openActiveConnectionSliderVendor","getSectionsForIcloud","getSectionsForOffice365","getActiveConnectionContent","itemClass","Reflection","getClass","isFunction","getConnectionById","length","result","filter","getSyncPanelTitle","getSyncPanelLogo","setWizardSyncMode","value","wizardSyncMode","setWizardState","stateData","wizard","getActiveWizard","setErrorState","handleUpdateState","setActiveWizard","activeWizard","subscribe","handleCreatedConnection","bind","handleCloseWizard","startWaitingMode","endWaitingMode","emit","waitingModeReserveTimeout","setTimeout","reload","clearTimeout","setSyncStatus","ajax","runAction","accountType","calendarContext","Util","getCalendarContext","syncInterface","refreshDebounce","isReconnecting","endReconnecting","startReconnecting","isSyncFinished","getOpenSliders","forEach","getUrl","refreshButton","unsubscribeAll","refresh","syncInfo","syncLink","syncOffset","getFailedConnectionName","getFirstFailedConnection","getFailedConnections","getFailedConnectionsCount","SyncStatusPopupV2","node","failedConnection","Guide","steps","title","Loc","getMessage","text","getText","article","onEvents","autoHide","overlay","start","setAsShown","linkNode","getPopup","getPopupContainer","querySelector","Event","onSyncPanelOpen","setWidth","getNotShownFailedConnection","isFailed","syncErrors","find","alreadyShown","failedConnections","providerName","connectionsProviders","Object","prototype","hasOwnProperty","call","getFailedConnectionsFromProvider","isUndefined","window","localStorage","key","SYNC_POPUP_KEY","itemString","getItem","item","JSON","parse","now","expire","Text","encode","trim","accountNameCapitalized","payload","SYNC_POPUP_TTL","setItem","stringify","IS_RUN_REFRESH","SyncButton","handleClick","buttonEnterTimeout","top","Runtime","loadExtension","exports","Dom","hasClass","button","syncPanel","SyncPanel","userId","wrapper","counters","payAttentionToNewSharingFeature","show","buttonData","getButtonData","Button","round","size","ButtonSize","EXTRA_SMALL","color","counter","leftCounter","icon","className","iconClass","onclick","dataset","renderTo","showAhaMoment","sync_errors","getContainer","showGoogleApplicationRefusedPopup","popup","Popup","bindElement","borderRadius","Tag","render","angle","offsetWidth","position","closeIcon","setColor","setText","removeClass","addClass","setCounter","ButtonColor","LIGHT_BORDER","ButtonIcon","REFRESH","CHECK","PRIMARY","getSyncPanel","setConnectionProviders","GoogleProvider","interfaceClassName","isSetSyncGoogleSettings","getSyncLink","hasSetSyncGoogleSettings","saveConnection","response","vendorName","googleApiStatus","googleCalendarPrimaryId","stage","BaseEvent","Office365Provider","isSetSyncOffice365Settings","hasSetSyncOffice365Settings","connectionId","errors","ICloudProvider","AndroidProvider","CaldavConnection","calculateStatus","isFailedConnections","showMenu","menu","destroy","menuItems","getMenuItems","getMenuItemConnect","getMenu","addMenuHandler","getMenuContainer","addEventListener","delimiter","Main","Menu","items","padding","zIndexAbsolute","closeByEsc","offsetTop","connectionsSyncInfo","server","isStringFilled","CaldavProvider","ExchangeProvider","IphoneProvider","MacProvider","portalAddress","getPortalAddress","OutlookProvider","infoBySections","connectToOutlook","offsetLeft","section","url","eval","YandexProvider","_t","SyncStatusPopup","withUpdateButton","init","setPopupContent","createPopup","container","darkMode","syncTime","getFormattedTime","classStatus","classLable","block","getSyncElement","append","getContentRefreshBlock","showRefreshStatus","hide","date","timestamp","Math","secondsAgo","format","util","htmlspecialchars","setContent","setRefreshStatusBlock","removeRefreshStatusBlock","enableRefreshButton","isElementNode","refreshStatusBlock","remove","disableRefreshButton","footerWrapper","getContentRefreshButton","innerText","runRefresh","prepend","getRefreshStatus","Manager","WIZARD_SYNC_MODE","WAITING_MODE_PERIODIC_TIMEOUT","REFRESH_DELAY","REFRESH_CONTENT_DELAY","WIZARD_SLIDER_PREFIX","calendar","config","showGoogleApplicationRefused","setSyncInfo","syncLinks","isRuZone","calendarInstance","debounce","refreshContentDebounce","refreshContent","subscribeOnEvent","onRefresh","reDrawCalendarGrid","location","showSyncButton","syncButton","needToShowGoogleRefusedPopup","yandexConnections","caldavConnections","sectionsByType","sortSections","caldav","google","getGoogleProvider","icloud","getIcloudProvider","office365","getOffice365Provider","getCaldavProvider","iphone","getIphoneProvider","android","getAndroidProvider","mac","getMacProvider","yandex","getYandexProvider","browser","IsMac","outlook","getOutlookProvider","exchange","getExchangeProvider","getSummarySyncStatus","subscribeEventHandlers","setSyncMode","syncMode","getSyncMode","isWizardSyncMode","isSyncInProcess","exchangeSections","googleSections","icloudSections","outlookSections","office365Sections","belongsToView","OUTLOOK_JS","connectURL","name","requestUid","registerRequestId","activePopup","getTarget","refreshCalendarGrid","refreshActivePopup","refreshOpenSliders","openSliders","refreshMainSlider","doRefreshMainSlider","indexOf","refreshConnectionSlider","updatedConnection","undefined","getData","get","values","itemConnections","reloadDebounce","updateSyncStatus","params","addSyncConnection","Calendar","checkRequestId","deleteSyncConnection","getProviderById","processSyncConnection","handlePullEvent","command","handleStartWaitingMode","handleEndWaitingMode","handleCloseSyncWizard","handleReconnecting","doPeriodicRefresh","stopPeriodicRefresh","hasOpenedWizard","documentIsDisplayingNow","refreshTimeout","clearInterval","openSyncPanel","isStatusFailed","hasRefusedStatus","googleProvider","office365Provider","icloudProvider","sliderList","i"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit