Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/js/ui/notification-manager/dist/
Upload File :
Current File : /var/www/homesaver/www/bitrix/js/ui/notification-manager/dist/notification-manager.bundle.js.map

{"version":3,"file":"notification-manager.bundle.js","sources":["../src/helpers/uuid.js","../src/notification/notification.js","../src/notification/push-notification.js","../src/pull-handler.js","../src/helpers/desktop.js","../src/helpers/browser.js","../src/notification/notification-event.js","../src/notification/notification-action.js","../src/notification/notification-close-reason.js","../src/providers/base.js","../src/providers/desktop.js","../src/providers/mac.js","../src/providers/windows.js","../src/providers/linux.js","../src/providers/browser.js","../src/views/browser-notification/browser-notification-action.js","../src/views/browser-notification/browser-notification.js","../src/providers/browser-page.js","../src/notifier.js"],"sourcesContent":["export default class Uuid\n{\n\tstatic getV4(): string\n\t{\n\t\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n\t\t\tvar r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n\t\t\treturn v.toString(16);\n\t\t});\n\t}\n}","import { Type, Loc } from 'main.core';\nimport Uuid from '../helpers/uuid';\n\nimport type { NotificationOptions } from './notification-options';\n\n/**\n * @memberof BX.UI.NotificationManager\n */\nexport default class Notification\n{\n\tstatic SEPARATOR: string = 'u1F9D1';\n\n\tconstructor(options: NotificationOptions)\n\t{\n\t\tthis.setUid(options.id);\n\t\tthis.setCategory(options.category);\n\t\tthis.setTitle(options.title);\n\t\tthis.setText(options.text);\n\t\tthis.setIcon(options.icon);\n\t\tthis.setInputPlaceholderText(options.inputPlaceholderText);\n\t\tthis.createButtons(options.button1Text, options.button2Text);\n\t}\n\n\tstatic encodeIdToUid(id: string): string\n\t{\n\t\treturn id + Notification.SEPARATOR + Uuid.getV4();\n\t}\n\n\tstatic decodeUidToId(uid: string): string\n\t{\n\t\tlet id = uid.split(Notification.SEPARATOR);\n\t\tid.pop();\n\n\t\treturn id.join();\n\t}\n\n\tsetUid(id: string): void\n\t{\n\t\tif (!Type.isStringFilled(id))\n\t\t{\n\t\t\tthrow new Error(`NotificationManager: Cannot create a notification without an ID`);\n\t\t}\n\n\t\tthis.uid = Notification.encodeIdToUid(id);\n\t}\n\n\tgetUid(): string\n\t{\n\t\treturn this.uid;\n\t}\n\n\tgetId(): string\n\t{\n\t\treturn Notification.decodeUidToId(this.uid);\n\t}\n\n\tsetCategory(category: string): void\n\t{\n\t\tthis.category = Type.isStringFilled(category) ? category : '';\n\t}\n\n\tgetCategory(): ?string\n\t{\n\t\treturn this.category;\n\t}\n\n\tsetTitle(title: string): void\n\t{\n\t\tthis.title = Type.isStringFilled(title) ? title : '';\n\t}\n\n\tgetTitle(): ?string\n\t{\n\t\treturn this.title;\n\t}\n\n\tsetText(text: string): void\n\t{\n\t\tthis.text = Type.isStringFilled(text) ? text : '';\n\t}\n\n\tgetText(): ?string\n\t{\n\t\treturn this.text;\n\t}\n\n\tsetIcon(icon: string): void\n\t{\n\t\tthis.icon = Type.isStringFilled(icon) ? icon : '';\n\t}\n\n\tgetIcon(): ?string\n\t{\n\t\treturn this.icon;\n\t}\n\n\tsetInputPlaceholderText(inputPlaceholderText: string): void\n\t{\n\t\tif (Type.isString(inputPlaceholderText))\n\t\t{\n\t\t\tthis.inputPlaceholderText = inputPlaceholderText;\n\t\t}\n\t}\n\n\tgetInputPlaceholderText(): ?string\n\t{\n\t\treturn this.inputPlaceholderText;\n\t}\n\n\tcreateButtons(button1Text, button2Text)\n\t{\n\t\tif (this.getInputPlaceholderText())\n\t\t{\n\t\t\tthis.setButton1Text(Loc.getMessage('UI_NOTIFICATION_MANAGER_REPLY'));\n\t\t\tthis.setButton2Text(Loc.getMessage('UI_NOTIFICATION_MANAGER_CLOSE'));\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.setButton1Text(button1Text);\n\t\t\tthis.setButton2Text(button2Text);\n\t\t}\n\t}\n\n\tsetButton1Text(button1Text: string): void\n\t{\n\t\tif (Type.isStringFilled(button1Text))\n\t\t{\n\t\t\tthis.button1Text = button1Text;\n\t\t}\n\t}\n\n\tgetButton1Text(): ?string\n\t{\n\t\treturn this.button1Text;\n\t}\n\n\tsetButton2Text(button2Text: string): void\n\t{\n\t\tif (Type.isStringFilled(button2Text))\n\t\t{\n\t\t\tthis.button2Text = button2Text;\n\t\t}\n\t}\n\n\tgetButton2Text(): ?string\n\t{\n\t\treturn this.button2Text;\n\t}\n}\n","import { Type } from 'main.core';\n\nimport Notification from './notification';\n\nexport default class PushNotification extends Notification\n{\n\tsetUid(id: string): void\n\t{\n\t\tif (!Type.isStringFilled(id))\n\t\t{\n\t\t\tthrow new Error(`NotificationManager: Cannot create a notification without an ID`);\n\t\t}\n\n\t\tthis.uid = id;\n\t}\n}","import { Notifier } from './notifier';\nimport PushNotification from './notification/push-notification';\n\nimport type { NotificationOptions } from './notification/notification-options';\n\nexport default class PullHandler\n{\n\tgetModuleId()\n\t{\n\t\treturn 'ui';\n\t}\n\n\thandleNotify(params, extra, command)\n\t{\n\t\tconst notification = params.notification;\n\t\tif (!notification)\n\t\t{\n\t\t\tthrow new Error('NotificationManager: Incorrect notification format');\n\t\t}\n\n\t\tconst notificationOptions: NotificationOptions = notification;\n\n\t\tconst pushNotification = new PushNotification(notificationOptions);\n\n\t\tNotifier.sendNotification(pushNotification);\n\t}\n}","import { Browser } from 'main.core';\n\nexport default class DesktopHelper\n{\n\tstatic isSupportedDesktopApp(): boolean\n\t{\n\t\treturn DesktopHelper.isBitrixDesktop() && DesktopHelper.geApiVersion() >= 67;\n\t}\n\n\tstatic isBitrixDesktop(): boolean\n\t{\n\t\treturn navigator.userAgent.toLowerCase().includes('bitrixdesktop');\n\t}\n\n\tstatic geApiVersion(): number\n\t{\n\t\tif (typeof BXDesktopSystem === 'undefined')\n\t\t{\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn Number(BXDesktopSystem.GetProperty('versionParts')[3]);\n\t}\n\n\tstatic isMainTab(): boolean\n\t{\n\t\tif (typeof BXDesktopSystem === 'undefined')\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn typeof BX.desktop !== 'undefined' && BX.desktop.apiReady;\n\t}\n\n\tstatic isMac(): boolean\n\t{\n\t\treturn Browser.isMac();\n\t}\n\n\tstatic isLinux(): boolean\n\t{\n\t\treturn Browser.isLinux();\n\t}\n\n\tstatic isWindows(): boolean\n\t{\n\t\treturn (\n\t\t\tBrowser.isWin()\n\t\t\t|| (\n\t\t\t\t!Browser.isMac()\n\t\t\t\t&& !Browser.isLinux()\n\t\t\t)\n\t\t);\n\t}\n\n\tstatic isRunningOnAnyDevice(): boolean\n\t{\n\t\treturn BXIM && BXIM.desktopStatus;\n\t}\n\n\tstatic checkRunningOnThisDevice(): Promise\n\t{\n\t\treturn new Promise(resolve => {\n\t\t\tconst turnedOnCallback: Function = () => {\n\t\t\t\tresolve(true);\n\t\t\t};\n\n\t\t\tconst turnedOffCallback: Function = () => {\n\t\t\t\tresolve(false);\n\t\t\t};\n\n\t\t\tBX.desktopUtils.runningCheck(turnedOnCallback, turnedOffCallback);\n\t\t});\n\t}\n}\n","export default class BrowserHelper\n{\n\tstatic isSupportedBrowser(): boolean\n\t{\n\t\treturn BrowserHelper.isChrome() || BrowserHelper.isFirefox() || BrowserHelper.isSafari();\n\t}\n\n\tstatic isNativeNotificationAllowed(): boolean\n\t{\n\t\treturn (\n\t\t\twindow.Notification\n\t\t\t&& window.Notification.permission\n\t\t\t&& window.Notification.permission.toLowerCase() === 'granted'\n\t\t);\n\t}\n\n\tstatic isSafari(): boolean\n\t{\n\t\tif (BrowserHelper.isChrome())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!navigator.userAgent.toLowerCase().includes('safari'))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !BrowserHelper.isSafariBased();\n\t}\n\n\tstatic isSafariBased(): boolean\n\t{\n\t\tif (!navigator.userAgent.toLowerCase().includes('applewebkit'))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\tnavigator.userAgent.toLowerCase().includes('yabrowser')\n\t\t\t|| navigator.userAgent.toLowerCase().includes('yaapp_ios_browser')\n\t\t\t|| navigator.userAgent.toLowerCase().includes('crios')\n\t\t);\n\t}\n\n\tstatic isChrome(): boolean\n\t{\n\t\treturn navigator.userAgent.toLowerCase().includes('chrome');\n\t}\n\n\tstatic isFirefox(): boolean\n\t{\n\t\treturn navigator.userAgent.toLowerCase().includes('firefox');\n\t}\n}\n","import { BaseEvent } from 'main.core.events';\n\nexport default class NotificationEvent extends BaseEvent\n{\n\tstatic CLICK: string = 'click';\n\tstatic ACTION: string = 'action';\n\tstatic CLOSE: string = 'close';\n\n\tstatic getTypes(): Array<string>\n\t{\n\t\treturn [\n\t\t\tNotificationEvent.CLICK,\n\t\t\tNotificationEvent.ACTION,\n\t\t\tNotificationEvent.CLOSE,\n\t\t];\n\t}\n\n\tstatic isSupported(eventType: string): boolean\n\t{\n\t\treturn NotificationEvent.getTypes().includes(eventType);\n\t}\n}\n","export default class NotificationAction\n{\n\tstatic BUTTON_1: string = 'button_1';\n\tstatic BUTTON_2: string = 'button_2';\n\tstatic USER_INPUT: string = 'user_input';\n\n\tstatic getTypes(): Array<string>\n\t{\n\t\treturn [\n\t\t\tNotificationAction.BUTTON_1,\n\t\t\tNotificationAction.BUTTON_2,\n\t\t\tNotificationAction.USER_INPUT,\n\t\t];\n\t}\n\n\tstatic isSupported(action: string): boolean\n\t{\n\t\treturn NotificationAction.getTypes().includes(action);\n\t}\n}\n","export default class NotificationCloseReason\n{\n\tstatic CLOSED_BY_USER: string = 'closed_by_user';\n\tstatic EXPIRED: string = 'expired';\n\n\tstatic getTypes(): Array<string>\n\t{\n\t\treturn [\n\t\t\tNotificationCloseReason.CLOSED_BY_USER,\n\t\t\tNotificationCloseReason.EXPIRED,\n\t\t];\n\t}\n\n\tstatic isSupported(closeReason: string): boolean\n\t{\n\t\treturn NotificationCloseReason.getTypes().includes(closeReason);\n\t}\n}\n","import { Type } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport Notification from '../notification/notification';\nimport NotificationEvent from '../notification/notification-event';\nimport NotificationAction from '../notification/notification-action';\nimport NotificationCloseReason from '../notification/notification-close-reason';\n\nimport type { ProviderOptions } from './provider-options';\n\nexport default class BaseProvider extends EventEmitter\n{\n\tstatic NOTIFICATION_LIFETIME = 14400000; //The lifetime of the notification is 4 hours\n\n\tconstructor(options: ?ProviderOptions = {})\n\t{\n\t\tsuper();\n\n\t\tif (Type.isStringFilled(options.eventNamespace))\n\t\t{\n\t\t\tthis.setEventNamespace(options.eventNamespace);\n\t\t}\n\t}\n\n\tconvertNotificationToNative(notification: Notification): any\n\t{\n\t\tthrow new Error('convertNotificationToNative() method must be implemented.');\n\t}\n\n\tsendNotification(nativeNotification: any): void\n\t{\n\t\tthrow new Error('sendNotification() method must be implemented.');\n\t}\n\n\tcanSendNotification(notification: Notification): boolean\n\t{\n\t\treturn true;\n\t}\n\n\tnotify(notification: Notification): void\n\t{\n\t\tif (!this.canSendNotification(notification))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst nativeNotification = this.convertNotificationToNative(notification);\n\n\t\tthis.sendNotification(nativeNotification);\n\t}\n\n\tnotificationClick(uid: string = ''): void\n\t{\n\t\tconst eventOptions = {\n\t\t\tdata: {\n\t\t\t\tid: Notification.decodeUidToId(uid),\n\t\t\t},\n\t\t};\n\n\t\tthis.emit(NotificationEvent.CLICK, new NotificationEvent(eventOptions));\n\t}\n\n\tnotificationAction(uid: string = '', action: string = '', userInput: ?string = null): void\n\t{\n\t\tif (!NotificationAction.isSupported(action))\n\t\t{\n\t\t\tconsole.warn(`NotificationManager: Unknown notification action \"${action}\".`);\n\t\t}\n\n\t\tconst eventOptions = {\n\t\t\tdata: {\n\t\t\t\tid: Notification.decodeUidToId(uid),\n\t\t\t\taction,\n\t\t\t},\n\t\t};\n\n\t\tif (userInput)\n\t\t{\n\t\t\teventOptions.data.userInput = userInput;\n\t\t}\n\n\t\tthis.emit(NotificationEvent.ACTION, new NotificationEvent(eventOptions));\n\t}\n\n\tnotificationClose(uid: string = '', reason: string = ''): void\n\t{\n\t\tif (!NotificationCloseReason.isSupported(reason))\n\t\t{\n\t\t\tconsole.warn(`NotificationManager: Unknown notification close reason \"${reason}\".`);\n\t\t}\n\n\t\tconst eventOptions = {\n\t\t\tdata: {\n\t\t\t\tid: Notification.decodeUidToId(uid),\n\t\t\t\treason,\n\t\t\t},\n\t\t};\n\n\t\tthis.emit(NotificationEvent.CLOSE, new NotificationEvent(eventOptions));\n\t}\n}\n","import BaseProvider from './base';\nimport DesktopHelper from '../helpers/desktop';\nimport Notification from '../notification/notification';\nimport PushNotification from '../notification/push-notification';\n\nimport type { ProviderOptions } from './provider-options';\n\n\nexport default class DesktopProvider extends BaseProvider\n{\n\tconstructor(options: ?ProviderOptions = {})\n\t{\n\t\tsuper(options);\n\n\t\tif (this.getEventNamespace())\n\t\t{\n\t\t\tthis.registerEvents();\n\t\t}\n\t}\n\n\tconvertNotificationToNative(notification: Notification): string\n\t{\n\t\tthrow new Error('convertNotificationToNative() method must be implemented.');\n\t}\n\n\tcanSendNotification(notification: Notification): boolean\n\t{\n\t\t//Desktop push & pull notifications, unlike regular ones, can be sent from only one tab to avoid duplication.\n\t\treturn DesktopHelper.isMainTab() || !(notification instanceof PushNotification);\n\t}\n\n\tsendNotification(notificationUid: string): void\n\t{\n\t\tBXDesktopSystem.NotificationShow(notificationUid);\n\t}\n\n\tregisterEvents(): void\n\t{\n\t\twindow.addEventListener('BXNotificationClick', (event) => this.onNotificationClick(event));\n\t\twindow.addEventListener('BXNotificationAction', (event) => this.onNotificationAction(event));\n\t\twindow.addEventListener('BXNotificationDismissed', (event) => this.onNotificationClose(event));\n\t}\n\n\tonNotificationClick(event): void\n\t{\n\t\tconst [id] = event.detail;\n\n\t\tBXDesktopSystem.SetActiveTab();\n\t\tthis.notificationClick(id);\n\t}\n\n\tonNotificationAction(event): void\n\t{\n\t\tconst [id, action, userInput] = event.detail;\n\n\t\tthis.notificationAction(id, action, userInput);\n\t}\n\n\tonNotificationClose(event): void\n\t{\n\t\tconst [id, reason] = event.detail;\n\n\t\tthis.notificationClose(id, reason);\n\t}\n}\n","import { Type, Loc } from 'main.core';\nimport BaseProvider from './base';\nimport DesktopProvider from './desktop';\nimport Notification from '../notification/notification';\nimport NotificationAction from '../notification/notification-action';\n\nexport default class MacProvider extends DesktopProvider\n{\n\tconvertNotificationToNative(notification: Notification): string\n\t{\n\t\tif (!Type.isStringFilled(notification.getId()))\n\t\t{\n\t\t\tthrow new Error(`NotificationManager: You cannot send a notification without an ID.`);\n\t\t}\n\n\t\tconst notificationUid = notification.getUid();\n\n\t\tBXDesktopSystem.NotificationCreate(notificationUid);\n\n\t\tif (Type.isStringFilled(notification.getTitle()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddText(notificationUid, notification.getTitle());\n\t\t}\n\n\t\tif (Type.isStringFilled(notification.getText()))\n\t\t{\n\t\t\t//this.addTextToNotification(notificationUid, notification.getText());\n\t\t\tBXDesktopSystem.NotificationAddText(notificationUid, notification.getText());\n\t\t}\n\n\t\tif (Type.isStringFilled(notification.getIcon()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddImage(notificationUid, notification.getIcon());\n\t\t}\n\n\t\tif (\n\t\t\tnotification.getInputPlaceholderText()\n\t\t\t&& Type.isString(notification.getInputPlaceholderText())\n\t\t)\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddInput(\n\t\t\t\tnotificationUid,\n\t\t\t\tnotification.getInputPlaceholderText(),\n\t\t\t\tNotificationAction.USER_INPUT\n\t\t\t);\n\t\t}\n\n\t\tif (notification.getButton1Text() && Type.isStringFilled(notification.getButton1Text()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddAction(\n\t\t\t\tnotificationUid,\n\t\t\t\tnotification.getButton1Text(),\n\t\t\t\tNotificationAction.BUTTON_1\n\t\t\t);\n\t\t}\n\n\t\tif (notification.getButton2Text() && Type.isStringFilled(notification.getButton2Text()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddAction(\n\t\t\t\tnotificationUid,\n\t\t\t\tLoc.getMessage('UI_NOTIFICATION_MANAGER_CLOSE'),\n\t\t\t\tNotificationAction.BUTTON_2\n\t\t\t);\n\t\t}\n\n\t\tBXDesktopSystem.NotificationSetExpiration(notificationUid, BaseProvider.NOTIFICATION_LIFETIME);\n\n\t\treturn notificationUid;\n\t}\n\n\taddTextToNotification(notificationUid: string, text: string): void\n\t{\n\t\tif (text.trim() === '')\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst languageSafeRowLength = 44;\n\n\t\tif (text.length <= languageSafeRowLength)\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddText(notificationUid, text);\n\t\t\treturn;\n\t\t}\n\n\t\tconst space = ' ';\n\n\t\tlet firstRow = '';\n\t\tlet words: Array<string> = text.split(space);\n\n\t\twhile (words.length > 0)\n\t\t{\n\t\t\tif (firstRow.length + words[0].length + 1 > languageSafeRowLength)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tfirstRow += words.shift() + space;\n\t\t}\n\n\t\tBXDesktopSystem.NotificationAddText(notificationUid, firstRow);\n\n\t\tlet secondRow = words.join(space);\n\t\tif (secondRow !== '')\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddText(notificationUid, secondRow);\n\t\t}\n\t}\n}\n","import { Type } from 'main.core';\nimport BaseProvider from './base';\nimport DesktopProvider from './desktop';\nimport Notification from '../notification/notification';\nimport NotificationAction from '../notification/notification-action';\n\nexport default class WindowsProvider extends DesktopProvider\n{\n\tconvertNotificationToNative(notification: Notification): string\n\t{\n\t\tif (!Type.isStringFilled(notification.getId()))\n\t\t{\n\t\t\tthrow new Error(`NotificationManager: You cannot send a notification without an ID.`);\n\t\t}\n\n\t\tconst notificationUid = notification.getUid();\n\n\t\tBXDesktopSystem.NotificationCreate(notificationUid);\n\n\t\tif (Type.isStringFilled(notification.getTitle()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddText(notificationUid, notification.getTitle());\n\t\t}\n\n\t\tif (Type.isStringFilled(notification.getText()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddText(notificationUid, notification.getText());\n\t\t}\n\n\t\tif (Type.isStringFilled(notification.getIcon()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddImage(notificationUid, notification.getIcon());\n\t\t}\n\n\t\tif (\n\t\t\tnotification.getInputPlaceholderText()\n\t\t\t&& Type.isString(notification.getInputPlaceholderText())\n\t\t)\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddInput(\n\t\t\t\tnotificationUid,\n\t\t\t\tnotification.getInputPlaceholderText(),\n\t\t\t\tNotificationAction.USER_INPUT\n\t\t\t);\n\t\t}\n\n\t\tif (notification.getButton1Text() && Type.isStringFilled(notification.getButton1Text()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddAction(\n\t\t\t\tnotificationUid,\n\t\t\t\tnotification.getButton1Text(),\n\t\t\t\tNotificationAction.BUTTON_1\n\t\t\t);\n\t\t}\n\n\t\tif (notification.getButton2Text() && Type.isStringFilled(notification.getButton2Text()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddAction(\n\t\t\t\tnotificationUid,\n\t\t\t\tnotification.getButton2Text(),\n\t\t\t\tNotificationAction.BUTTON_2\n\t\t\t);\n\t\t}\n\n\t\tBXDesktopSystem.NotificationSetExpiration(notificationUid, BaseProvider.NOTIFICATION_LIFETIME);\n\n\t\treturn notificationUid;\n\t}\n}\n","import { Type } from 'main.core';\nimport BaseProvider from './base';\nimport DesktopProvider from './desktop';\nimport Notification from '../notification/notification';\nimport NotificationAction from '../notification/notification-action';\n\nexport default class LinuxProvider extends DesktopProvider\n{\n\tconvertNotificationToNative(notification: Notification): string\n\t{\n\t\tif (!Type.isStringFilled(notification.getId()))\n\t\t{\n\t\t\tthrow new Error(`NotificationManager: You cannot send a notification without an ID.`);\n\t\t}\n\n\t\tconst notificationUid = notification.getUid();\n\n\t\tBXDesktopSystem.NotificationCreate(notificationUid);\n\n\t\tif (Type.isStringFilled(notification.getTitle()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddText(notificationUid, notification.getTitle());\n\t\t}\n\n\t\tif (Type.isStringFilled(notification.getText()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddText(notificationUid, notification.getText());\n\t\t}\n\n\t\tif (Type.isStringFilled(notification.getIcon()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddImage(notificationUid, notification.getIcon());\n\t\t}\n\n\t\tif (\n\t\t\tnotification.getInputPlaceholderText()\n\t\t\t&& Type.isString(notification.getInputPlaceholderText())\n\t\t)\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddInput(\n\t\t\t\tnotificationUid,\n\t\t\t\tnotification.getInputPlaceholderText(),\n\t\t\t\tNotificationAction.USER_INPUT,\n\t\t\t);\n\t\t}\n\n\t\tif (notification.getButton1Text() && Type.isStringFilled(notification.getButton1Text()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddAction(\n\t\t\t\tnotificationUid,\n\t\t\t\tnotification.getButton1Text(),\n\t\t\t\tNotificationAction.BUTTON_1,\n\t\t\t);\n\t\t}\n\n\t\tif (notification.getButton2Text() && Type.isStringFilled(notification.getButton2Text()))\n\t\t{\n\t\t\tBXDesktopSystem.NotificationAddAction(\n\t\t\t\tnotificationUid,\n\t\t\t\tnotification.getButton2Text(),\n\t\t\t\tNotificationAction.BUTTON_2,\n\t\t\t);\n\t\t}\n\n\t\tBXDesktopSystem.NotificationSetExpiration(notificationUid, BaseProvider.NOTIFICATION_LIFETIME);\n\n\t\treturn notificationUid;\n\t}\n}\n","import { Type } from 'main.core';\nimport BaseProvider from './base';\nimport Notification from '../notification/notification';\nimport DesktopHelper from '../helpers/desktop';\n\ntype BrowserNotificationOptions = {\n\ttitle: string,\n\toptions?: {\n\t\tbody?: string,\n\t\ttag?: string,\n\t\ticon?: string,\n\t},\n\tonclick: Function,\n};\n\nexport default class BrowserProvider extends BaseProvider\n{\n\tconvertNotificationToNative(notification: Notification): BrowserNotificationOptions\n\t{\n\t\tconst notificationOptions: BrowserNotificationOptions = {\n\t\t\ttitle: notification.getTitle() ? notification.getTitle() : '',\n\t\t\toptions: {\n\t\t\t\tbody: '',\n\t\t\t\ttag: notification.getUid(),\n\t\t\t\trenotify: true,\n\t\t\t},\n\t\t\tonclick: (event: Event) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\twindow.focus();\n\n\t\t\t\tthis.notificationClick(notification.getUid());\n\t\t\t},\n\t\t};\n\n\t\tif (Type.isStringFilled(notification.getIcon()))\n\t\t{\n\t\t\tnotificationOptions.options.icon = notification.getIcon();\n\t\t}\n\n\t\tif (Type.isStringFilled(notification.getText()))\n\t\t{\n\t\t\tnotificationOptions.options.body = notification.getText();\n\t\t}\n\n\t\treturn notificationOptions;\n\t}\n\n\tsendNotification(notificationOptions: BrowserNotificationOptions): void\n\t{\n\t\tif (!DesktopHelper.isRunningOnAnyDevice())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tDesktopHelper.checkRunningOnThisDevice()\n\t\t\t.then(isRunningOnThisDevice => {\n\t\t\t\tif (isRunningOnThisDevice)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst notification = new window.Notification(notificationOptions.title, notificationOptions.options);\n\n\t\t\t\tnotification.onclick = notificationOptions.onclick;\n\t\t\t});\n\t}\n}\n","import { Type } from 'main.core';\nimport 'ui.notification';\nimport { Button, ButtonOptions } from 'ui.buttons';\n\nexport default class BrowserNotificationAction extends BX.UI.Notification.Action\n{\n\tstatic BASE_BUTTON_CLASS = 'ui-notification-manager-browser-button';\n\tstatic TYPE_ACCEPT: string = 'accept';\n\n\tconstructor(balloon, options)\n\t{\n\t\tsuper(balloon, options);\n\n\t\tthis.setButtonClass(options.buttonType);\n\t}\n\n\tgetContainer(): HTMLElement\n\t{\n\t\tif (this.container !== null)\n\t\t{\n\t\t\treturn this.container;\n\t\t}\n\n\t\tlet buttonOptions: ButtonOptions = {\n\t\t\ttext: this.getTitle(),\n\t\t}\n\n\t\tif (Type.isFunction(this.events.click))\n\t\t{\n\t\t\tbuttonOptions.onclick = (button: Button, event: Event) => {\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tthis.events.click(button, event);\n\t\t\t}\n\t\t}\n\n\t\tconst button = new Button(buttonOptions);\n\n\t\tbutton.removeClass('ui-btn');\n\t\tbutton.addClass(BrowserNotificationAction.BASE_BUTTON_CLASS);\n\t\tbutton.addClass(this.getButtonClass());\n\n\t\tthis.container = button.getContainer();\n\n\t\treturn this.container;\n\t}\n\n\tstatic getButtonTypes()\n\t{\n\t\treturn [\n\t\t\tBrowserNotificationAction.TYPE_ACCEPT,\n\t\t];\n\t}\n\n\tstatic isSupportedButtonType(buttonType: string)\n\t{\n\t\treturn BrowserNotificationAction.getButtonTypes().includes(buttonType);\n\t}\n\n\tsetButtonClass(buttonType: ?string)\n\t{\n\t\tthis.buttonClass =\n\t\t\tBrowserNotificationAction.isSupportedButtonType(buttonType)\n\t\t\t\t? BrowserNotificationAction.BASE_BUTTON_CLASS + '-' + buttonType\n\t\t\t\t: ''\n\t\t;\n\t}\n\n\tgetButtonClass()\n\t{\n\t\treturn this.buttonClass;\n\t}\n}\n","import {Type, Tag, Loc, Dom, Text} from 'main.core';\nimport 'ui.notification';\nimport BrowserNotificationAction from './browser-notification-action';\n\nimport 'ui.design-tokens';\nimport './browser-notification.css';\n\nexport default class BrowserNotification extends BX.UI.Notification.Balloon\n{\n\tstatic KEY_CODE = {\n\t\tENTER: 13,\n\t\tESC: 27,\n\t};\n\n\tconstructor(options: UI.Notification.BalloonOptions)\n\t{\n\t\tsuper(options);\n\n\t\tthis.userInputContainerNode = null;\n\t\tthis.userInputNode = null;\n\t}\n\n\tsetActions(actions)\n\t{\n\t\tthis.actions = [];\n\n\t\tif (Type.isArray(actions))\n\t\t{\n\t\t\tactions.forEach(action => this.actions.push(new BrowserNotificationAction(this, action)));\n\t\t}\n\t}\n\n\tgetContainer(): HTMLElement\n\t{\n\t\tif (this.container !== null)\n\t\t{\n\t\t\treturn this.container;\n\t\t}\n\n\t\tconst onMouseEnter = () => this.handleMouseEnter();\n\t\tconst onMouseLeave = () => this.handleMouseLeave();\n\n\t\tthis.container = Tag.render`\n\t\t\t<div\n\t\t\t\tclass=\"ui-notification-manager-browser-balloon\"\n\t\t\t\tonmouseenter=\"${onMouseEnter}\"\n\t\t\t\tonmouseleave=\"${onMouseLeave}\"\n\t\t\t>\n\t\t\t\t${this.render()}\n\t\t\t</div>\n\t\t`;\n\n\t\treturn this.container;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tthis.animationClassName = \"ui-notification-manager-browser-balloon-animate\";\n\n\t\tconst contentWidth = Type.isNumber(this.getWidth()) ? this.getWidth() + 'px' : this.getWidth();\n\n\t\treturn Tag.render`\n\t\t\t<div\n\t\t\t\tclass=\"ui-notification-manager-browser-content\"\n\t\t\t\tstyle=\"width: ${contentWidth}\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"ui-notification-manager-browser-message\"\n\t\t\t\t\tonclick=\"${this.handleContentClick.bind(this)}\"\n\t\t\t\t\toncontextmenu=\"${this.handleContextClick.bind(this)}\"\n\t\t\t\t>\n\t\t\t\t\t${this.getIconNode()}\n\t\t\t\t\t<div class=\"ui-notification-manager-browser-column\">\n\t\t\t\t\t\t${this.getTitleNode()}\n\t\t\t\t\t\t${this.getTextNode()}\n\t\t\t\t\t\t${this.getUserInputContainerNode()}\n\t\t\t\t\t\t${this.getActionsNode()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t${this.getCloseButtonNode()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetTitleNode(): HTMLElement | string\n\t{\n\t\tif (!Type.isStringFilled(this.getData().title))\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tconst title = Dom.create({\n\t\t\ttag: 'span',\n\t\t\tattrs: {className: 'ui-notification-manager-browser-title'},\n\t\t\ttext: this.getData().title\n\t\t}).outerHTML;\n\n\t\treturn Tag.render`<div class=\"ui-notification-manager-browser-title\">${title}<div>`;\n\t}\n\n\tgetTextNode(): HTMLElement | string\n\t{\n\t\tif (!Type.isStringFilled(this.getData().text))\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Dom.create({\n\t\t\ttag: 'div',\n\t\t\tattrs: {className: 'ui-notification-manager-browser-text'},\n\t\t\ttext: this.getData().text,\n\t\t});\n\t}\n\n\tgetIconNode(): HTMLElement | string\n\t{\n\t\tif (!Type.isStringFilled(this.getData().icon))\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Dom.create({\n\t\t\ttag: 'div',\n\t\t\tclassName: 'ui-notification-manager-browser-column',\n\t\t\tchildren: [\n\t\t\t\tDom.create({\n\t\t\t\t\ttag: 'img',\n\t\t\t\t\tstyle: {height: '44px', width: '44px'},\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclassName: 'ui-notification-manager-browser-icon',\n\t\t\t\t\t\tsrc: this.getData().icon,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t]\n\t\t});\n\t}\n\n\tgetActionsNode(): HTMLElement | string\n\t{\n\t\tconst actions = this.getActions().map(action => action.getContainer());\n\t\tif (!Type.isArrayFilled(actions))\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-notification-manager-browser-actions\">\n\t\t\t\t${actions}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetUserInputContainerNode(): HTMLElement | string\n\t{\n\t\tif (!Type.isString(this.getData().inputPlaceholderText))\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tconst onInputReplyClick = (event: Event) => event.stopPropagation();\n\n\t\tconst id = Text.encode(this.getId());\n\t\tconst placeholderText = Text.encode(this.getData().inputPlaceholderText);\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-notification-manager-browser-actions\">\n\t\t\t\t<div class=\"ui-notification-manager-browser-column ui-notification-manager-browser-column-wide\">\n\t\t\t\t\t<div class=\"ui-notification-manager-browser-row\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass=\"ui-notification-manager-browser-button\"\n\t\t\t\t\t\t\tid=\"ui-notification-manager-browser-reply-toggle-${id}\"\n\t\t\t\t\t\t\tonclick=\"${this.toggleUserInputContainerNode.bind(this)}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"ui-btn-text\">${Loc.getMessage('UI_NOTIFICATION_MANAGER_REPLY')}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"ui-notification-manager-browser-row ui-notification-manager-browser-row-reply\"\n\t\t\t\t\t\tid=\"ui-notification-manager-browser-reply-container-${id}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"ui-notification-manager-browser-reply-wrapper\">\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\tclass=\"ui-notification-manager-browser-input-reply\"\n\t\t\t\t\t\t\t\tplaceholder=\"${placeholderText}\"\n\t\t\t\t\t\t\t\tid=\"ui-notification-manager-browser-reply-${id}\"\n\t\t\t\t\t\t\t\tonkeyup=\"${this.handleUserInputEnter.bind(this)}\"\n\t\t\t\t\t\t\t\tonclick=\"${onInputReplyClick}\"\n\t\t\t\t\t\t\t\tdisabled\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"ui-notification-manager-browser-button-reply\"\n\t\t\t\t\t\t\tonclick=\"${this.handleUserInputClick.bind(this)}\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\ttoggleUserInputContainerNode(event: Event): void\n\t{\n\t\tevent.stopPropagation();\n\n\t\tconst id = Text.encode(this.getId());\n\n\t\tif (!this.userInputContainerNode)\n\t\t{\n\t\t\tthis.userInputContainerNode =\n\t\t\t\tdocument.getElementById('ui-notification-manager-browser-reply-container-' + id)\n\t\t\t;\n\t\t}\n\n\t\tif (!this.userInputNode)\n\t\t{\n\t\t\tthis.userInputNode =\n\t\t\t\tdocument.getElementById('ui-notification-manager-browser-reply-' + id)\n\t\t\t;\n\t\t}\n\n\t\tif (!this.replyToggleButton)\n\t\t{\n\t\t\tthis.replyToggleButton =\n\t\t\t\tdocument.getElementById('ui-notification-manager-browser-reply-toggle-' + id)\n\t\t\t;\n\t\t}\n\n\t\tthis.showUserInput = !this.showUserInput;\n\t\tif (this.showUserInput)\n\t\t{\n\t\t\tthis.setAutoHide(false);\n\t\t\tthis.deactivateAutoHide();\n\n\t\t\tthis.replyToggleButton.style.display = 'none';\n\t\t\tthis.userInputContainerNode.classList.add('ui-notification-manager-browser-row-reply-animate');\n\t\t\tthis.userInputNode.disabled = false;\n\t\t\tthis.userInputNode.focus();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.setAutoHide(true);\n\t\t\tthis.activateAutoHide();\n\n\t\t\tthis.replyToggleButton.style.display = 'block';\n\t\t\tthis.userInputContainerNode.classList.remove('ui-notification-manager-browser-row-reply-animate');\n\t\t\tthis.userInputNode.disabled = true;\n\t\t}\n\t}\n\n\tgetCloseButtonNode(): HTMLElement | string\n\t{\n\t\tif (!this.isCloseButtonVisible())\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div\n\t\t\t\tclass=\"ui-notification-manager-browser-button-close\"\n\t\t\t\tonclick=\"${this.handleCloseBtnClick.bind(this)}\"\n\t\t\t/>\n\t\t`;\n\t}\n\n\thandleCloseBtnClick(event: Event): void\n\t{\n\t\tevent.stopPropagation();\n\n\t\tif (Type.isFunction(this.getData().closedByUserHandler))\n\t\t{\n\t\t\tthis.getData().closedByUserHandler();\n\t\t}\n\n\t\tsuper.handleCloseBtnClick();\n\t}\n\n\thandleContentClick(): void\n\t{\n\t\tif (Type.isFunction(this.getData().clickHandler))\n\t\t{\n\t\t\tthis.getData().clickHandler();\n\t\t}\n\n\t\tthis.close();\n\t}\n\n\thandleContextClick(event: Event): void\n\t{\n\t\tevent.preventDefault();\n\n\t\tif (Type.isFunction(this.getData().contextClickHandler))\n\t\t{\n\t\t\tthis.getData().contextClickHandler();\n\t\t}\n\t}\n\n\thandleUserInputEnter(event: Event): void\n\t{\n\t\tif (!Type.isFunction(this.getData().userInputHandler))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst userInput = event.target.value;\n\n\t\tif (event.keyCode === BrowserNotification.KEY_CODE.ENTER && userInput !== '')\n\t\t{\n\t\t\tthis.getData().userInputHandler(userInput);\n\t\t\tthis.close();\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.keyCode === BrowserNotification.KEY_CODE.ESC && userInput === '')\n\t\t{\n\t\t\tif (Type.isFunction(this.getData().closedByUserHandler))\n\t\t\t{\n\t\t\t\tthis.getData().closedByUserHandler();\n\t\t\t}\n\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\thandleUserInputClick(event: Event): void\n\t{\n\t\tevent.stopPropagation();\n\n\t\tif (!Type.isFunction(this.getData().userInputHandler))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst userInput = this.userInputNode.value;\n\n\t\tif (userInput !== '')\n\t\t{\n\t\t\tthis.getData().userInputHandler(userInput);\n\t\t\tthis.close();\n\t\t}\n\t}\n}\n","import { Type } from 'main.core';\nimport 'ui.notification';\nimport BaseProvider from './base';\nimport Notification from '../notification/notification';\nimport NotificationAction from '../notification/notification-action';\nimport NotificationCloseReason from '../notification/notification-close-reason';\nimport BrowserNotification from '../views/browser-notification/browser-notification';\nimport BrowserNotificationAction from '../views/browser-notification/browser-notification-action';\nimport type { ProviderOptions } from './provider-options';\n\nexport default class BrowserPageProvider extends BaseProvider\n{\n\tstatic BROADCAST_CHANNEL = 'ui-notification-manager-channel';\n\n\tstatic MESSAGE_TYPE = {\n\t\tcloseNotification: 'close-notification',\n\t\tcloseAllNotifications: 'close-all-notifications',\n\t};\n\n\tstatic autoHideDelay = 6000;\n\n\tconstructor(options: ?ProviderOptions = {})\n\t{\n\t\tsuper(options);\n\n\t\tthis.broadcastChannel = null;\n\t\tthis.setBroadcast(options);\n\t}\n\n\tsetBroadcast(options): void\n\t{\n\t\tthis.broadcastChannel = new BroadcastChannel(BrowserPageProvider.BROADCAST_CHANNEL);\n\t\tthis.broadcastChannel.onmessage = (event) => this.handleMessageEvent(event);\n\t\tthis.postMessageToBroadcast(BrowserPageProvider.MESSAGE_TYPE.closeAllNotifications);\n\t}\n\n\tconvertNotificationToNative(notification: Notification): BX.UI.Notification.BalloonOptions\n\t{\n\t\tif (!Type.isStringFilled(notification.getId()))\n\t\t{\n\t\t\tthrow new Error(`NotificationManager: You cannot send a notification without an ID.`);\n\t\t}\n\n\t\tconst closedByUserHandler: Function = () => {\n\t\t\tthis.notificationClose(notification.getUid(), NotificationCloseReason.CLOSED_BY_USER);\n\t\t};\n\n\t\tconst clickHandler: Function = () => {\n\t\t\tthis.notificationClick(notification.getUid());\n\t\t};\n\n\t\tconst contextClickHandler: Function = () => {\n\t\t\tthis.closeAllNotifications();\n\t\t};\n\n\t\tconst userInputHandler: Function = (userInput) => {\n\t\t\tthis.notificationAction(notification.getUid(), NotificationAction.BUTTON_1, userInput);\n\t\t};\n\n\t\tconst balloonOptions: BX.UI.Notification.BalloonOptions = {\n\t\t\tid: notification.getUid(),\n\t\t\tcategory: notification.getCategory(),\n\t\t\ttype: BrowserNotification,\n\t\t\tdata: {\n\t\t\t\ttitle: notification.getTitle(),\n\t\t\t\ttext: notification.getText(),\n\t\t\t\ticon: notification.getIcon(),\n\t\t\t\tclosedByUserHandler,\n\t\t\t\tclickHandler,\n\t\t\t\tcontextClickHandler,\n\t\t\t\tuserInputHandler,\n\t\t\t},\n\t\t\tactions: [],\n\t\t\twidth: 380,\n\t\t\tposition: 'top-right',\n\t\t\tautoHideDelay: BrowserPageProvider.autoHideDelay,\n\t\t\tevents: {\n\t\t\t\tonClose: (event) => {\n\t\t\t\t\tthis.onBalloonClose(event);\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tif (notification.getInputPlaceholderText())\n\t\t{\n\t\t\tballoonOptions.data.inputPlaceholderText = notification.getInputPlaceholderText();\n\n\t\t\treturn balloonOptions;\n\t\t}\n\n\t\tconst showButton1 = notification.getButton1Text() && Type.isStringFilled(notification.getButton1Text());\n\t\tconst showButton2 = notification.getButton2Text() && Type.isStringFilled(notification.getButton2Text());\n\n\t\tif (showButton1)\n\t\t{\n\t\t\tconst action1Options = {\n\t\t\t\tid: NotificationAction.BUTTON_1,\n\t\t\t\ttitle: notification.getButton1Text(),\n\t\t\t\tevents: {\n\t\t\t\t\tclick: (event, balloon, action) => this.onNotificationAction(event, balloon, action),\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tif (showButton2)\n\t\t\t{\n\t\t\t\taction1Options.buttonType = BrowserNotificationAction.TYPE_ACCEPT;\n\t\t\t}\n\n\t\t\tballoonOptions.actions.push(action1Options);\n\t\t}\n\n\t\tif (showButton2)\n\t\t{\n\t\t\tconst action2Options = {\n\t\t\t\tid: NotificationAction.BUTTON_2,\n\t\t\t\ttitle: notification.getButton2Text(),\n\t\t\t\tevents: {\n\t\t\t\t\tclick: (event, balloon, action) => this.onNotificationAction(event, balloon, action),\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tballoonOptions.actions.push(action2Options);\n\t\t}\n\n\t\treturn balloonOptions;\n\t}\n\n\tonBalloonClose(event): void\n\t{\n\t\tconst id = event.getBalloon().id;\n\t\tthis.postMessageToBroadcast(BrowserPageProvider.MESSAGE_TYPE.closeNotification, id);\n\t}\n\n\tpostMessageToBroadcast(action, uid = ''): void\n\t{\n\t\tif (action === BrowserPageProvider.MESSAGE_TYPE.closeNotification && !uid)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.broadcastChannel.postMessage({\n\t\t\taction,\n\t\t\t...(uid ? { uid } : {}),\n\t\t});\n\t}\n\n\thandleMessageEvent(event: MessageEvent): void\n\t{\n\t\tif (event.data.action === BrowserPageProvider.MESSAGE_TYPE.closeNotification)\n\t\t{\n\t\t\tconst uid = event.data.uid;\n\t\t\tconst id = Notification.decodeUidToId(uid);\n\t\t\tconst balloon = this.findBalloonById(id);\n\n\t\t\tif (balloon === null)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.closeNotification(balloon);\n\t\t}\n\t\telse if (event.data.action === BrowserPageProvider.MESSAGE_TYPE.closeAllNotifications)\n\t\t{\n\t\t\tthis.closeAllNotifications();\n\t\t}\n\t}\n\n\tfindBalloonById(id: string): UI.Notification.Balloon\n\t{\n\t\tconst balloonsKeys = Object.keys(BX.UI.Notification.Center.balloons);\n\t\tfor (const uid of balloonsKeys)\n\t\t{\n\t\t\tif (uid.startsWith(id))\n\t\t\t{\n\t\t\t\treturn BX.UI.Notification.Center.balloons[uid];\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tcloseNotification(balloon: BX.UI.Notification.Balloon): void\n\t{\n\t\tthis.notificationClose(balloon.id, NotificationCloseReason.CLOSED_BY_USER);\n\t\tballoon.close();\n\t}\n\n\tcloseAllNotifications(): void\n\t{\n\t\tBX.UI.Notification.Center.getDefaultStack()?.clear();\n\t}\n\n\tsendNotification(notification: BX.UI.Notification.BalloonOptions): void\n\t{\n\t\tBX.UI.Notification.Center.notify(notification);\n\t}\n\n\tonNotificationAction(event, balloon, action): void\n\t{\n\t\tballoon.close();\n\t\tthis.notificationAction(balloon.id, action.id);\n\t}\n}\n","import 'pull.client';\n\nimport PullHandler from './pull-handler';\nimport DesktopHelper from './helpers/desktop';\nimport BrowserHelper from './helpers/browser';\nimport Notification from './notification/notification';\nimport NotificationEvent from './notification/notification-event';\n\nimport BaseProvider from './providers/base';\nimport MacProvider from './providers/mac';\nimport WindowsProvider from './providers/windows';\nimport LinuxProvider from './providers/linux';\nimport BrowserProvider from './providers/browser';\nimport BrowserPageProvider from './providers/browser-page';\n\nimport type { NotificationOptions } from './notification/notification-options';\nimport type { ProviderOptions } from './providers/provider-options';\n\n/**\n * @memberof BX.UI.NotificationManager\n */\nclass Notifier\n{\n\tstatic EVENT_NAMESPACE: string = 'BX.UI.NotificationManager';\n\tstatic PROVIDER_OPTIONS: ProviderOptions = {\n\t\teventNamespace: Notifier.EVENT_NAMESPACE,\n\t};\n\n\tconstructor()\n\t{\n\t\tthis.provider = this.createProvider();\n\t\tBX.PULL?.subscribe(new PullHandler());\n\t}\n\n\tcreateProvider(): BaseProvider\n\t{\n\t\tif (DesktopHelper.isSupportedDesktopApp() && DesktopHelper.isMac() && DesktopHelper.geApiVersion() >= 73)\n\t\t{\n\t\t\treturn new MacProvider(Notifier.PROVIDER_OPTIONS);\n\t\t}\n\n\t\tif (DesktopHelper.isSupportedDesktopApp() && DesktopHelper.isWindows())\n\t\t{\n\t\t\treturn new WindowsProvider(Notifier.PROVIDER_OPTIONS);\n\t\t}\n\n\t\tif (DesktopHelper.isSupportedDesktopApp() && DesktopHelper.isLinux())\n\t\t{\n\t\t\treturn new LinuxProvider(Notifier.PROVIDER_OPTIONS);\n\t\t}\n\n\t\tif (BrowserHelper.isSupportedBrowser() && BrowserHelper.isNativeNotificationAllowed())\n\t\t{\n\t\t\treturn new BrowserProvider(Notifier.PROVIDER_OPTIONS);\n\t\t}\n\n\t\treturn this.#getBrowserPageProvider();\n\t}\n\n\tnotify(notificationOptions: NotificationOptions): void\n\t{\n\t\tconst notification = new Notification(notificationOptions);\n\n\t\tthis.sendNotification(notification);\n\t}\n\n\tsendNotification(notification: Notification): void\n\t{\n\t\tthis.provider.notify(notification);\n\t}\n\n\tnotifyViaBrowserProvider(notificationOptions: NotificationOptions)\n\t{\n\t\tconst notification = new Notification(notificationOptions);\n\n\t\tthis.#getBrowserPageProvider().notify(notification);\n\t}\n\n\tnotifyViaDesktopProvider(notification: NotificationOptions)\n\t{\n\t\tif (DesktopHelper.isSupportedDesktopApp() && DesktopHelper.isMac())\n\t\t{\n\t\t\tnew MacProvider().notify(notification);\n\t\t\treturn;\n\t\t}\n\n\t\tif (DesktopHelper.isSupportedDesktopApp() && DesktopHelper.isMac())\n\t\t{\n\t\t\tnew WindowsProvider().notify(notification);\n\t\t\treturn;\n\t\t}\n\n\t\tthrow new Error(`NotificationManager: unsupported environment for sending through a desktop provider.`);\n\t}\n\n\tsubscribe(eventName: string, handler: function): void\n\t{\n\t\tif (!NotificationEvent.isSupported(eventName))\n\t\t{\n\t\t\tthrow new Error(`NotificationManager: event \"${eventName}\" is not supported.`);\n\t\t}\n\n\t\tthis.provider.subscribe(eventName, handler);\n\t\tif (this.provider !== this.#getBrowserPageProvider())\n\t\t{\n\t\t\tthis.#getBrowserPageProvider().subscribe(eventName, handler);\n\t\t}\n\t}\n\n\t#getBrowserPageProvider(): BrowserPageProvider\n\t{\n\t\tif (!this.browserProvider)\n\t\t{\n\t\t\tthis.browserProvider = new BrowserPageProvider(Notifier.PROVIDER_OPTIONS);\n\t\t}\n\n\t\treturn this.browserProvider;\n\t}\n}\n\nconst notifier = new Notifier();\n\nexport {notifier as Notifier};\n"],"names":["Uuid","getV4","replace","c","r","Math","random","v","toString","Notification","constructor","options","setUid","id","setCategory","category","setTitle","title","setText","text","setIcon","icon","setInputPlaceholderText","inputPlaceholderText","createButtons","button1Text","button2Text","encodeIdToUid","SEPARATOR","decodeUidToId","uid","split","pop","join","Type","isStringFilled","Error","getUid","getId","getCategory","getTitle","getText","getIcon","isString","getInputPlaceholderText","setButton1Text","Loc","getMessage","setButton2Text","getButton1Text","getButton2Text","PushNotification","PullHandler","getModuleId","handleNotify","params","extra","command","notification","notificationOptions","pushNotification","Notifier","sendNotification","DesktopHelper","isSupportedDesktopApp","isBitrixDesktop","geApiVersion","navigator","userAgent","toLowerCase","includes","BXDesktopSystem","Number","GetProperty","isMainTab","BX","desktop","apiReady","isMac","Browser","isLinux","isWindows","isWin","isRunningOnAnyDevice","BXIM","desktopStatus","checkRunningOnThisDevice","Promise","resolve","turnedOnCallback","turnedOffCallback","desktopUtils","runningCheck","BrowserHelper","isSupportedBrowser","isChrome","isFirefox","isSafari","isNativeNotificationAllowed","window","permission","isSafariBased","NotificationEvent","BaseEvent","getTypes","CLICK","ACTION","CLOSE","isSupported","eventType","NotificationAction","BUTTON_1","BUTTON_2","USER_INPUT","action","NotificationCloseReason","CLOSED_BY_USER","EXPIRED","closeReason","BaseProvider","EventEmitter","eventNamespace","setEventNamespace","convertNotificationToNative","nativeNotification","canSendNotification","notify","notificationClick","eventOptions","data","emit","notificationAction","userInput","console","warn","notificationClose","reason","NOTIFICATION_LIFETIME","DesktopProvider","getEventNamespace","registerEvents","notificationUid","NotificationShow","addEventListener","event","onNotificationClick","onNotificationAction","onNotificationClose","detail","SetActiveTab","MacProvider","NotificationCreate","NotificationAddText","NotificationAddImage","NotificationAddInput","NotificationAddAction","NotificationSetExpiration","addTextToNotification","trim","languageSafeRowLength","length","space","firstRow","words","shift","secondRow","WindowsProvider","LinuxProvider","BrowserProvider","body","tag","renotify","onclick","preventDefault","focus","then","isRunningOnThisDevice","BrowserNotificationAction","UI","Action","balloon","setButtonClass","buttonType","getContainer","container","buttonOptions","isFunction","events","click","button","stopPropagation","Button","removeClass","addClass","BASE_BUTTON_CLASS","getButtonClass","getButtonTypes","TYPE_ACCEPT","isSupportedButtonType","buttonClass","BrowserNotification","Balloon","userInputContainerNode","userInputNode","setActions","actions","isArray","forEach","push","onMouseEnter","handleMouseEnter","onMouseLeave","handleMouseLeave","Tag","render","animationClassName","contentWidth","isNumber","getWidth","handleContentClick","bind","handleContextClick","getIconNode","getTitleNode","getTextNode","getUserInputContainerNode","getActionsNode","getCloseButtonNode","getData","Dom","create","attrs","className","outerHTML","children","style","height","width","src","getActions","map","isArrayFilled","onInputReplyClick","Text","encode","placeholderText","toggleUserInputContainerNode","handleUserInputEnter","handleUserInputClick","document","getElementById","replyToggleButton","showUserInput","setAutoHide","deactivateAutoHide","display","classList","add","disabled","activateAutoHide","remove","isCloseButtonVisible","handleCloseBtnClick","closedByUserHandler","clickHandler","close","contextClickHandler","userInputHandler","target","value","keyCode","KEY_CODE","ENTER","ESC","BrowserPageProvider","broadcastChannel","setBroadcast","BroadcastChannel","BROADCAST_CHANNEL","onmessage","handleMessageEvent","postMessageToBroadcast","MESSAGE_TYPE","closeAllNotifications","balloonOptions","type","position","autoHideDelay","onClose","onBalloonClose","showButton1","showButton2","action1Options","action2Options","getBalloon","closeNotification","postMessage","findBalloonById","balloonsKeys","Object","keys","Center","balloons","startsWith","getDefaultStack","clear","provider","createProvider","PULL","subscribe","PROVIDER_OPTIONS","notifyViaBrowserProvider","notifyViaDesktopProvider","eventName","handler","browserProvider","EVENT_NAMESPACE","notifier"],"mappings":"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"}