{"version":3,"file":"js/base.js","mappings":"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UAAU,QAAQ,QAAQ,MAAM,0rEAA0rE,EAAE,IAAI,MAAM,EAAE,IAAI,IAAI,QAAQ,IAAI,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,oDAAoD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,kCAAkC,UAAU,MAAM,EAAE,MAAM,4lQAA4lQ,2FAA2F,yBAAyB,+FAA+F,gDAAgD,gBAAgB,0GAA0G,0BAA0B,KAA0B;;;;;;;;;;;;;;;;;;;;;;ACAlsvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,mBAAmB;AACnB,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,mBAAmB;AACnB,KAAK;AACL;AACA,mBAAmB;AACnB,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB;AACnB,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,mBAAmB;AACnB,KAAK;AACL;AACA,mBAAmB;AACnB,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,mBAAmB;AACnB,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB,WAAW,IAAI;AACf,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA","sources":["webpack://localhost:5001/./src/ts/Modals/loadersModal.ts","webpack://localhost:5001/./src/ts/Modals/userHistoryModal.ts","webpack://localhost:5001/./src/ts/base.ts","webpack://localhost:5001/./src/ts/dialerUpdate.ts","webpack://localhost:5001/./src/ts/elements/CategoryColor.ts","webpack://localhost:5001/./src/ts/reminders.ts","webpack://localhost:5001/./src/ts/twilio.ts","webpack://localhost:5001/./node_modules/tz-lookup/tz.js","webpack://localhost:5001/./src/formatDate.js"],"sourcesContent":["import { forEachCorner } from 'ol/extent';\r\n\r\n$(() => {\r\n window['InstanceSimple'].log('TaskHub', 'Settings');\r\n});\r\n\r\nconst connection = new window['signalR'].HubConnectionBuilder().withUrl('/taskhub').build();\r\nlet store;\r\nlet isInit = false;\r\n\r\nwindow['TaskConnection'] = connection;\r\nwindow['tasks'] = [];\r\n\r\nconnectionStart(connection);\r\nconnectionEvents(connection);\r\nSchedulerUserNotification(connection);\r\n/**\r\n * checkTasks(): Function\r\n * if isn't tasks with status 'End' or 'Cancel'\r\n * remove dots\r\n * show in title 'Done!'\r\n * else \r\n * show dots\r\n * show in title 'Loading'\r\n */\r\nfunction checkTasks() {\r\n if (isEndTasks()) {\r\n ($('.dotAnimation') as any).Loadingdotdotdot('stop');\r\n $('.dotAnimation').hide();\r\n $('.dotAnimationTitle').html('Done!');\r\n }\r\n else {\r\n if (!$('.dotAnimation').is(':visible')) {\r\n ($('.dotAnimation') as any).Loadingdotdotdot({\r\n 'speed': 200,\r\n 'maxDots': 15,\r\n 'word': ''\r\n });\r\n $('.dotAnimationTitle').html('Loading');\r\n $('.dotAnimation').show();\r\n }\r\n }\r\n}\r\nexport function SchedulerUserNotification(connection) {\r\n // Handle incoming notifications\r\n connection.on('ReceiveSchedulerNotification', (message: string) => {\r\n alert(message);\r\n console.log('Received notification:', message);\r\n\r\n });\r\n \r\n}\r\nexport function connectionEvents(connection) {\r\n // === buy leads\r\n connection.on('AddBusiness', (bid) => {\r\n $(`td.tid_${bid}`).html('$');\r\n });\r\n\r\n connection.on('BusinessAll', (process, task, data) => {\r\n if (window['InstanceSimple']) {\r\n window['InstanceSimple'].log('TaskHub', 'BusinessAll', process, task, data);\r\n }\r\n else {\r\n $(() => {\r\n window['InstanceSimple'].log('TaskHub', 'BusinessAll', process, task, data);\r\n });\r\n }\r\n\r\n if (process == 'Init') {\r\n showModalHidePanelLoading();\r\n window['tasks'].push(task);\r\n store.push([{ type: 'insert', data: task, index: -1 }]);\r\n }\r\n if (process == 'Remove' || process == 'Cancel') {\r\n window['tasks'] = window['tasks'].filter(x => x.uid != task.uid)\r\n store.push([{ type: 'remove', key: task.uid }]);\r\n }\r\n else {\r\n window['tasks'] = window['tasks'].filter(x => x.uid != task.uid);\r\n window['tasks'].push(task);\r\n store.push([{ type: 'update', data: task, key: task.uid }]);\r\n }\r\n\r\n });\r\n\r\n connection.on('UpdateFilters', () => {\r\n if (window['InstanceBase'].Filter) {\r\n $.get('/Business/UpdateFilters', (data, status, ctx) => window['InstanceBase'].Filter.UpdateFilters(data, ctx));\r\n }\r\n });\r\n\r\n // === \r\n connection.on('New Task', (task) => {\r\n $('.root-preloader').hide();\r\n if (task.count > 1) {\r\n showModalHidePanelLoading();\r\n window['tasks'].push(task);\r\n store.push([{ type: 'insert', data: task, index: -1 }]);\r\n }\r\n });\r\n\r\n connection.on('Task', (task) => {\r\n window['tasks'] = window['tasks'].filter(x => x.uid != task.uid);\r\n window['tasks'].push(task);\r\n store.push([{ type: 'update', data: task, key: task.uid }]);\r\n //connection.invoke('GetTasks').then((data) => {\r\n // window['tasks'] = window['tasks'].filter(x => x.uid != task.uid);\r\n // window['tasks'].push(task);\r\n // if (data.length == 0) {\r\n // hideModal();\r\n // hidePanelLoading();\r\n // }\r\n //});\r\n });\r\n\r\n connection.on('End Task', (task) => {\r\n ////dxDataGrid Update Task Line With status (End Or Cancel) Wit\r\n window['tasks'] = window['tasks'].filter(x => x.uid != task.uid);\r\n window['tasks'].push(task);\r\n store.push([{ type: 'update', data: task, key: task.uid }]);\r\n });\r\n\r\n // === ??\r\n connection.on('Outgoings', (out, status) => {\r\n if (status) {\r\n $.get('/Twilio/Outgoings', data => {\r\n try {\r\n $('.gvVerifiedCallerId').dxDataGrid('option', 'dataSource', data);\r\n }\r\n catch (ex) {\r\n console.error(ex);\r\n }\r\n });\r\n $('.gvVerifiedCallerId').dxDataGrid('refresh');\r\n }\r\n });\r\n}\r\n\r\nexport function connectionStart(connection) {\r\n connection.start().then(() => {\r\n store = new window['DevExpress'].data.CustomStore({\r\n key: 'uid',\r\n load: () => {\r\n connection.invoke('GetTasks').then(data => {\r\n window['tasks'] = data;\r\n if (window['tasks'].length) showModalHidePanelLoading();\r\n });\r\n checkTasks();\r\n return connection.invoke('GetTasks');\r\n },\r\n // onAjaxError() {\r\n // console.log('AjaxError', arguments);\r\n // },\r\n // onBeforeSend(){\r\n // console.log('BeforeSend', arguments);\r\n // },\r\n //onInserting() {\r\n // console.log('Inserting', arguments);\r\n //},\r\n //onInserted() {\r\n // console.log('Inserted', arguments);\r\n //},\r\n //onLoading() {\r\n // console.log('Loading', arguments);\r\n //},\r\n onLoaded(data) {\r\n $('.loaders-panel').css('left', `${localStorage.getItem('loading')}px`);\r\n if (data.length) {\r\n showPanelLoading();\r\n }\r\n },\r\n //onModified() {\r\n // console.log('Modified', arguments);\r\n //},\r\n //onModifying() {\r\n // console.log('Modifying', arguments);\r\n //},\r\n onPush(data) {\r\n if (data.length)\r\n if (data[0].data?.event) return;\r\n //console.log(window['tasks']);\r\n checkTasks();\r\n setTimeout(() => {\r\n if ($('.gvLoaders').dxDataGrid('getDataSource')._items.length) {\r\n if (data[0].type === 'insert') {\r\n showModalHidePanelLoading();\r\n }\r\n }\r\n else {\r\n hideModal();\r\n hidePanelLoading();\r\n }\r\n }, 1000);\r\n },\r\n //onRemoving() {\r\n // console.log('Removing', arguments);\r\n //},\r\n //onRemoved() {\r\n // console.log('Removed', arguments);\r\n //},\r\n onUpdating() {\r\n console.log('Updating', arguments);\r\n },\r\n onUpdated() {\r\n console.log('Updated', arguments);\r\n },\r\n });\r\n\r\n if (window['InstanceSimple']) {\r\n window['InstanceSimple'].log('TaskHub', 'Started');\r\n }\r\n else {\r\n $(() => {\r\n window['InstanceSimple'].log('TaskHub', 'Started But Simple Is Not');\r\n });\r\n }\r\n\r\n gvLoaders();\r\n loadersModalActions();\r\n });\r\n}\r\n\r\nfunction gvLoaders() {\r\n $('.gvLoaders').dxDataGrid({\r\n dataSource: store,\r\n columns: [{\r\n caption: 'Task',\r\n cellTemplate: (el, options) => {\r\n if (options.data.name.split(' ')[0] == 'Import') el.append(`${options.data.name} rows`)\r\n else el.append(options.data.name)\r\n },\r\n dataField: 'name',\r\n // width: 75\r\n }, {\r\n caption: 'Tab',\r\n cellTemplate: (el, options) => {\r\n el.append(window['importTabName'] ?? options.data.status);\r\n },\r\n dataField: 'status',\r\n // width: 100\r\n },\r\n {\r\n caption: 'Progress',\r\n cellTemplate: (el, temp) => {\r\n const div = $('
');\r\n (div as any).dxProgressBar({\r\n max: temp.data.count,\r\n min: 0,\r\n value: temp.data.value\r\n });\r\n el.append(div);\r\n },\r\n width: 95,\r\n },\r\n {\r\n dataField: 'start',\r\n dataType: 'date',\r\n format: (date) => {\r\n return window['moment'](date).utcOffset(window['userTimezone'].Offset).format('L, LT');\r\n //let month = (date as any).getMonth() + 1,\r\n // day = (date as any).getDate(),\r\n // year = (date as any).getFullYear(),\r\n // time = (date as any).toLocaleString([], { hour: '2-digit', minute: '2-digit' });\r\n\r\n //return month + '/' + day + '/' + year + ', ' + time;\r\n },\r\n width: 135\r\n },\r\n {\r\n caption: 'Action',\r\n cellTemplate: (el, temp) => {\r\n const deleteBtn = $('');\r\n el.empty().append(deleteBtn);\r\n deleteBtn.on('click', () => {\r\n connection.invoke('CancelTask', temp.data.uid).then('console.log');\r\n });\r\n\r\n if (temp.data.group === 'BusinessAll') {\r\n if (temp.data.status === 'End' || temp.data.status === 'Cancel') {\r\n if (window['InstanceBase']) window['InstanceBase'].remindersCountRequests();\r\n const openBtn = $('');\r\n openBtn.on('click', () => {\r\n $.get('/Business/GetTaskBusiness', { guid: temp.data.uid }, (info) => { window['InstanceBase'].mainGridResultModalShow(info.ResultBusinesses, info.WithBlackList); });\r\n });\r\n el.empty().append(openBtn);\r\n }\r\n else {\r\n const cancelBtn = $('');\r\n cancelBtn.on('click', () => {\r\n connection.invoke('CancelTask', temp.data.uid).then('console.log');\r\n\r\n });\r\n el.empty().append(cancelBtn);\r\n }\r\n }\r\n else if (temp.data.name && temp.data.name.indexOf('Import') == '-1') {\r\n const cancelBtn = $('');\r\n cancelBtn.on('click', () => {\r\n connection.invoke('CancelTask', temp.data.uid).then('console.log');\r\n });\r\n el.empty().append(cancelBtn);\r\n }\r\n else if (temp.data.status === 'End' || temp.data.status === 'Cancel') {\r\n const openBtn = $('');\r\n openBtn.off('click').on('click', (e) => {\r\n connection.invoke('CancelTask', temp.data.uid).then('console.log');\r\n store.push([{ type: 'remove', key: temp.data.uid }]);\r\n\r\n window['tasks'] = window['tasks'].filter(x => x.uid != temp.data.uid)\r\n });\r\n el.empty().append(openBtn);\r\n }\r\n },\r\n width: 86,\r\n }\r\n ],\r\n height: '100%',\r\n keyExpr: 'uid',\r\n onContentReady: () => {\r\n if (!isInit) {\r\n if ($('.gvLoaders').dxDataGrid('getDataSource')._items.length) {\r\n showModalHidePanelLoading();\r\n }\r\n else {\r\n hidePanelLoading();\r\n }\r\n isInit = true;\r\n }\r\n },\r\n rowAlternationEnabled: true,\r\n showBorders: true,\r\n });\r\n}\r\n\r\nfunction isEndTasks() {\r\n let l = 0;\r\n for (let k = 0; k < window['tasks'].length; k++) {\r\n //if (!(window['tasks'][k].status == 'End' || window['tasks'][k].status == 'Cancel' || window['tasks'][k].status == null))\r\n // return false;\r\n if (window['tasks'][k].status == 'End' || window['tasks'][k].status == 'Cancel')\r\n l++;\r\n }\r\n return l == window['tasks'].length ? true : false;\r\n //return true;\r\n}\r\n\r\n// === modal\r\nfunction loadersModalActions() {\r\n setWindowPanelPosition();\r\n\r\n $('.loadersModal .fa-compress-alt').off('click').on('click', () => {\r\n hideModalShowPanelLoading();\r\n });\r\n\r\n $('.loaders-panel .fa-expand-alt').off('click').on('click', () => {\r\n const offset = $('.loaders-panel').offset().left;\r\n let position;\r\n if ($(window).width() / 2 > offset) {\r\n position = offset;\r\n $('.loadersModal').css('left', position);\r\n } else {\r\n position = $(window).width() - offset - 250; // right position = width window - panel left position - width panel\r\n $('.loadersModal').css('left', 'initial').css('right', position);\r\n }\r\n showModalHidePanelLoading();\r\n });\r\n\r\n $('.loaders-panel').off('click').on('click', () => {\r\n console.log($('.loaders-panel').offset().left);\r\n });\r\n $('.loaders-panel').draggable({\r\n axis: 'x'\r\n });\r\n $('.loaders-panel').on('dragstop', () => {\r\n setWindowPanelPosition();\r\n });\r\n\r\n $(window).resize(() => {\r\n setWindowPanelPosition();\r\n $('.loaders-panel').css('top', $(window).height() - 30);\r\n })\r\n}\r\n\r\nfunction hideModal() {\r\n $('.loadersModal').addClass('hide');\r\n setTimeout(() => {\r\n $('.loadersModal').addClass('hideZ');\r\n }, 500);\r\n}\r\n\r\nfunction hideModalShowPanelLoading() {\r\n $('.loadersModal').addClass('hide');\r\n $('.loaders-panel').addClass('showZ').addClass('show');\r\n setTimeout(() => {\r\n $('.loadersModal').addClass('hideZ');\r\n }, 500);\r\n}\r\n\r\nfunction hidePanelLoading() {\r\n $('.loaders-panel').removeClass('show');\r\n setTimeout(() => {\r\n $('.loaders-panel').removeClass('showZ');\r\n }, 500);\r\n}\r\n\r\nfunction showModalHidePanelLoading() {\r\n hidePanelLoading();\r\n $('.loadersModal').removeClass('hideZ').removeClass('hide');\r\n}\r\n\r\nfunction showPanelLoading() {\r\n $('.loaders-panel').addClass('showZ').addClass('show');\r\n}\r\n\r\nfunction setWindowPanelPosition() {\r\n const loadersPanelOffset = +($('.loaders-panel') as any).offset().left;\r\n const windowWidth = $(window).width();\r\n const panelWidth = $('.loaders-panel').width();\r\n\r\n if (loadersPanelOffset + panelWidth + 30 > windowWidth) $('.loaders-panel').css('left', windowWidth - panelWidth - 35);\r\n if (loadersPanelOffset < 0) $('.loaders-panel').css('left', 2);\r\n localStorage.setItem('loading', ($('.loaders-panel') as any).offset().left);\r\n}","export function userHistoryModal() {\r\n if (!$('#userHistoryModal').length) {\r\n $.post('/Popups/UserHistoryModal', data => {\r\n $('body').append(data);\r\n uhBase();\r\n });\r\n }\r\n else uhBase();\r\n}\r\n\r\nfunction uhBase() {\r\n uhGrid();\r\n\r\n ($('#userHistoryModal') as any).modal('show');\r\n}\r\n\r\nfunction uhGrid() {\r\n const date = new Date();\r\n const dataGrid = [\r\n {\r\n datetime: window['moment'](date).utcOffset(window['userTimezone'].Offset).format('LLL'),\r\n scheduleTime: window['moment'](date).utcOffset(window['userTimezone'].Offset).add(4, 'hours').format('LLL'),\r\n type: 'Email',\r\n },\r\n {\r\n datetime: window['moment'](date).utcOffset(window['userTimezone'].Offset).add(1, 'hours').format('LLL'),\r\n scheduleTime: window['moment'](date).utcOffset(window['userTimezone'].Offset).add(5, 'hours').format('LLL'),\r\n type: 'SMS',\r\n },\r\n {\r\n datetime: window['moment'](date).utcOffset(window['userTimezone'].Offset).add(3, 'hours').format('LLL'),\r\n scheduleTime: window['moment'](date).utcOffset(window['userTimezone'].Offset).add(6, 'hours').format('LLL'),\r\n type: 'RoboCall',\r\n },\r\n ];\r\n ($('.uh-grid') as any).dxDataGrid({\r\n dataSource: dataGrid,\r\n allowColumnReordering: true,\r\n columns: [\r\n {\r\n caption: 'Date & time',\r\n dataField: 'datetime',\r\n },\r\n {\r\n caption: 'Type',\r\n dataField: 'type',\r\n },\r\n {\r\n caption: 'Schedule time',\r\n dataField: 'scheduleTime',\r\n },\r\n ],\r\n onContentReady(e) {\r\n\r\n },\r\n pager: {\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [10, 25, 50, 100],\r\n },\r\n paging: {\r\n pageSize: 20,\r\n },\r\n remoteOperations: false,\r\n //searchPanel: {\r\n // visible: true,\r\n // highlightCaseSensitive: true,\r\n //},\r\n rowAlternationEnabled: true,\r\n showBorders: true,\r\n width: '100%',\r\n });\r\n}","/**\r\n * window['editReminderFromMyCRM'] // ??!\r\n * window['IsConsumer'] // ??!\r\n * window['IsReminderSeen'] // ??!\r\n * window['InstanceBase'] - class Base\r\n * window['lastSearchedNotificationDate']\r\n * window['ReminderClick'] - Data of click reminder (obj). Date in format YYYY-MM-DDThh:mm:ssZ\r\n * window['RemindersDone'] // ??!\r\n * window['RemindersList'] - full list of reminderds (arr)\r\n * window['waitMainGrid']:boolean - If user wait, while load grid\r\n * */\r\nimport { connectionStart, connectionEvents, SchedulerUserNotification } from './Modals/loadersModal'\r\nimport { format } from '../formatDate';\r\nimport { Value } from 'sass';\r\nimport DevExpress from 'devextreme';\r\nimport CategoryColor from './elements/CategoryColor' //For Type\r\nimport on = DevExpress.events.on;\r\n/*import { isEmailExist } from './Modals/invitePeopleModal';*/\r\n\r\nlet Ical = null; //require('ical-generator');\r\nconst Simple = require('./simple');\r\nconst Profile = require('./profileAndSettings');\r\nconst Reminders = require('./reminders');\r\nconst ColorCategory = require('./elements/CategoryColor');\r\nconst lookup = require('tz-lookup');\r\nconst userHistory = require('./Modals/userHistoryModal');\r\nconst MyTwilio = require('./twilio');\r\nwindow['MyTwilio'] = MyTwilio.Instance;\r\n\r\nconst defFormat = (d: Date, str: string) => format(d, str, undefined, 'en-US');\r\n\r\nexport default class Base extends Simple {\r\n ActiveBlackList = 0;\r\n LastBlackList = null;\r\n UpdateHub: any;\r\n private runTest: boolean;\r\n IsMapInit = false;\r\n findTZ(lat: number, long: number) {\r\n return lookup(lat, long);\r\n }\r\n constructor(name?: string, d?: boolean, runTest?: boolean) {\r\n super(name, d);\r\n\r\n const self = this;\r\n window['InstanceBase'] = self;\r\n window['IsConsumer'] = true;\r\n this.window = window;\r\n this.window.ICal = Ical;\r\n\r\n const app = this.app = this;\r\n this.window.App = this;\r\n this.$ = $;\r\n this.runTest = runTest;\r\n\r\n // === reminders\r\n //new Profile(this.debug);\r\n //this.window.RemindersDone = {};\r\n //// t.bellRing = this.bellRing;\r\n self.reminderInit(1000);\r\n //window['IsReminderSeen'] = false;\r\n window['gMapInit'] = () => {\r\n self.IsMapInit = true;\r\n }\r\n }\r\n\r\n //@ts-ignore\r\n get searchParams(): URLSearchParams {\r\n return (new URL(window.document.location as any)).searchParams;\r\n }\r\n\r\n onReady() {\r\n let app = this.app;\r\n let self = this;\r\n app.log('Ready... base');\r\n\r\n //window.onclick = (ev) => {\r\n // console.log('click', ev)\r\n //}\r\n\r\n self.UpdateHub = new window['signalR'].HubConnectionBuilder().withUrl('/updatehub').build();\r\n\r\n self.UpdateHub.on('UpdateFilters', () => {\r\n if (window['InstanceBase'].Filter) {\r\n $.get('/Business/UpdateFilters', (data, _, ctx) => window['InstanceBase'].Filter.UpdateFilters(data, ctx));\r\n }\r\n });\r\n\r\n self.UpdateHub.on('RemoveEvent', (args) => {\r\n if (!!self.onSendGrid) self.onSendGrid(args, 'Remove');\r\n if (localStorage['events']) {\r\n const events = JSON.parse(localStorage['events']);\r\n if (events['data']) {\r\n events.data = events.data.filter(x => x.Id != args);\r\n events.time = Date.now();\r\n localStorage['events'] = JSON.stringify(events);\r\n self.clicksEvent(events.data);\r\n }\r\n self.companyEvent(events.data.filter(el => {\r\n let date: any = el.lastStats.lastEvent;\r\n if (date[date.length - 1] != 'Z') date += 'Z';\r\n date = new Date(date);\r\n date = (new Date() as any) - date;\r\n\r\n return el.lastStats.clicks >= window['NCount'] && date < window['NTime'] * 60000;\r\n }));\r\n }\r\n });\r\n\r\n self.UpdateHub.on('SendGrid', (args) => {\r\n if (!!self.onSendGrid) self.onSendGrid(args);\r\n const clicks = args.filter(el => el.event.event == 'click' && !el.isHub);\r\n const companyEvents = args.filter(el => el.event.event == 'click' && el.isHub);\r\n if (clicks.length > 0) {\r\n let elClicks;\r\n const events_c = [];\r\n clicks.forEach((el) => {\r\n events_c.push({\r\n LeadId: el.leadId,\r\n Id: el.id,\r\n tabName: el.tabName,\r\n Event: {\r\n timestamp: el.event.timestamp,\r\n Event: el.event.event\r\n },\r\n BusinessRowInfo: {\r\n Id: el.businessRowInfo.id,\r\n Company_Name: el.businessRowInfo.company_Name,\r\n First_Name_01: el.businessRowInfo.first_Name_01,\r\n Last_Name_01: el.businessRowInfo.last_Name_01,\r\n },\r\n lastStats: {\r\n lastEvent: el.lastStats.lastEvent,\r\n clicks: el.lastStats.clicks\r\n }\r\n })\r\n elClicks = $(`.alertMsg-content .toast-clicks[data-lead=\"${el.leadId}\"`);\r\n if (elClicks.length > 0) {\r\n $(elClicks).remove();\r\n let oldClicks = +$('.hideToast-badge').text()\r\n oldClicks--;\r\n $('.hideToast-badge').text(oldClicks)\r\n }\r\n })\r\n if (localStorage['events']) {\r\n self.log(events_c);\r\n const events = JSON.parse(localStorage['events']);\r\n if (events['data']) {\r\n events_c.forEach(el => events.data.push(el));\r\n\r\n events.time = Date.now();\r\n localStorage['events'] = JSON.stringify(events);\r\n }\r\n else {\r\n const userId = window['User']?.Id;\r\n localStorage['events'] = JSON.stringify({\r\n time: Date.now(),\r\n data: events_c,\r\n user: userId\r\n });\r\n }\r\n }\r\n\r\n if (!$('.hideToast').is(':visible') && $('.clicks-position').css('visibility') == 'hidden') $('.hideToast').show();\r\n }\r\n\r\n if (companyEvents.length > 0) {\r\n let elClicks;\r\n const events_c = [];\r\n companyEvents.forEach((el) => {\r\n events_c.push({\r\n LeadId: el.leadId,\r\n Id: el.id,\r\n tabName: el.tabName,\r\n Event: {\r\n timestamp: el.event.timestamp,\r\n Event: el.event.event\r\n },\r\n BusinessRowInfo: {\r\n Id: el.businessRowInfo.id,\r\n Company_Name: el.businessRowInfo.company_Name,\r\n First_Name_01: el.businessRowInfo.first_Name_01,\r\n Last_Name_01: el.businessRowInfo.last_Name_01,\r\n }\r\n })\r\n elClicks = $(`.companyToast-content .toast-company[data-lead=\"${el.leadId}\"`);\r\n if (elClicks.length > 0) {\r\n $(elClicks).remove();\r\n let oldClicks = +$('.hideToastCompany-badge').text()\r\n oldClicks--;\r\n $('.hideToastCompany-badge').text(oldClicks)\r\n }\r\n })\r\n\r\n if (!$('.hideToastCompany').is(':visible') && $('.companyToast-position').css('visibility') == 'hidden') $('.hideToastCompany').show();\r\n }\r\n self.clicksEvent(clicks);\r\n self.companyEvent(companyEvents);\r\n\r\n })\r\n\r\n self.UpdateHub.start().then(() => {\r\n app.log('Update Hub Started!');\r\n })\r\n\r\n $('form.addToCRMGroups-form').on('submit', e => e.preventDefault());\r\n\r\n $(document).on('show.bs.modal', '#userLeadsGroupsModal', () => {\r\n self.initNewBlackList();\r\n })\r\n\r\n $(document).on('click', '#userLeadsGroupsModal .btnSaveLeads', () => {\r\n if ((self.getCookie('dontConfirmAddToCRM') == 'true')) {\r\n if ($('#newInfo').is(':visible')) {\r\n self.preloader(true);\r\n }\r\n $('.mainGrid').dxDataGrid('instance').getSelectedRowsData().length == 0 ?\r\n self.buyLeadsNotSelectedAddToMyCrm() : self.insertRows('#userLeadsGroupsModal');\r\n } else {\r\n ($('#confirmUserLeadsGroupsModal') as any).modal('show');\r\n self.preloader(false);\r\n }\r\n })\r\n //#region REFRESH DATA AFTER self POP UP CLOSED\r\n $(document).on('click', '.btnSaveLeadsApprove', function () {\r\n if ($('#newInfo').is(':visible')) {\r\n self.preloader(true);\r\n }\r\n if ($('#dontConfirmAddToCRM').is(':checked')) {\r\n self.createCookie('dontConfirmAddToCRM', true, new Date);\r\n }\r\n self.preloader(false);\r\n try {\r\n $('.mainGrid').dxDataGrid('instance').getSelectedRowsData().length == 0 ?\r\n self.buyLeadsNotSelectedAddToMyCrm() : self.insertRows('#userLeadsGroupsModal');\r\n }\r\n catch (ex) {\r\n self.insertRows('#userLeadsGroupsModal');\r\n }\r\n });\r\n //#endregion\r\n //#region REFRESH DATA AFTER self POP UP CLOSED\r\n $('#userLeadsGroupsModal').off('hidden.bs.modal').on('hidden.bs.modal', (e) => {\r\n // ($('#userLeadsGroupsModal') as any).unbind('hide.bs.modal');\r\n $('#userLeadsGroupsModal .btnSaveLeads').text('Buy');\r\n $('.addToCRM-text-item.text-item0').hide().text('');\r\n $('.addToCRM-text-item.text-item1').hide().text('');\r\n $('.addToCRM-text-item.text-item3').hide();\r\n $('#availableForPurchase').text('');\r\n ($('#mainGridResultModal') as any).modal('hide');\r\n $('.tabNewWrapper').css('visibility', 'hidden');\r\n try {\r\n $('.mainGrid').dxDataGrid('instance').deselectAll();\r\n $('.mainGrid').dxDataGrid('instance').option('selection.selectAllMode', 'allPages');\r\n } catch (ex) { console.log }\r\n ($('#userLeadsGroupsModal .gvLeadsGroups') as any).dxDropDownBox('instance')._clearValue();\r\n window['SeachedKeys'] = [];\r\n if (e.target.id == 'userLeadsGroupsModal') {\r\n $('.businessClickRemove').show();\r\n $('.businessClick').hide();\r\n }\r\n $('#userLeadsGroupsModal .btnSaveLeads').prop('disabled', true);\r\n });\r\n\r\n // $('#userLeadsGroupsModal').off('hide.bs.modal').on('hide.bs.modal', (ev) => {\r\n // $('#mainGridResultModal').bind('hide.bs.modal', (e) => {\r\n // e.preventDefault();\r\n // ($(this) as any).unbind(e);\r\n // });\r\n // });\r\n //#endregion\r\n $('.showPassword i').hover((e) => {\r\n $(e.target).closest('.position-relative').find('.hidePassword').attr('type', 'text');\r\n $(e.target).removeClass('fa-eye-slash').addClass('fa-eye');\r\n }, () => {\r\n $('.hidePassword').attr('type', 'password');\r\n $('.showPassword i').removeClass('fa-eye').addClass('fa-eye-slash');\r\n });\r\n\r\n // === if not Home Page ===\r\n if (!self.runTest) {\r\n // app.ReminderBell();\r\n // app.reminderModal();\r\n let countReq = 0;\r\n self.getListTimeZonesAndUserTimezone();\r\n\r\n // reminders\r\n //Reminders.load();\r\n $('.nav-item a').on('click', (event) => {\r\n if (app.menuItemClick(event.target))\r\n event.preventDefault();\r\n });\r\n //self.reminderCount();\r\n // /reminders\r\n\r\n $('#mainHeaderPanel-collapsed-content').on('show.bs.offcanvas', () => {\r\n $('.ps-wrap').css('z-index', 0);\r\n ($('.navbarAccountDropdown-menu') as any).hide();\r\n });\r\n\r\n $('#mainHeaderPanel-collapsed-content').on('hide.bs.offcanvas', () => {\r\n $('.ps-wrap').css('z-index', 1055);\r\n });\r\n\r\n $(document).on('click', (e) => {\r\n if ($('#ps-toggle-check').is(':checked')) {\r\n if ($(e.target).closest('.bg-modal').length > 0)\r\n $('#ps-toggle-check').prop('checked', false);\r\n }\r\n if ($(e.target).closest($('#mainHeaderPanel-collapsed-content')).length <= 0)\r\n ($('#mainHeaderPanel-collapsed-content') as any).collapse('hide');\r\n });\r\n\r\n $('[name=\"ProfileSettings\"]').off('click').on('click', () => {\r\n $('#ps-toggle-check').prop('checked', true).trigger('change');\r\n });\r\n\r\n $('.header-links li.dropdown').hover((e) => {\r\n $('.header-links .dropdown-menu').stop(true, true).delay(0).fadeOut('fast');\r\n $(e.target).closest('.dropdown').find('.dropdown-menu').stop(true, true).delay(0).fadeIn('fast');\r\n }, (e) => {\r\n $(e.target).closest('.dropdown').find('.dropdown-menu').stop(true, true).delay(3000).fadeOut();\r\n });\r\n\r\n $('.header-links .nav-link').on('click', () => {\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip('hide');\r\n })\r\n window['fixShowLinesDevExGrid'] = fixShowLinesDevExGrid;\r\n\r\n // function setDevExCustomPageSize(gridId) {\r\n // // window['customPageSize'] = true;\r\n // const gridIdName = gridId.slice(1);\r\n // function setCustomPagerSizeInputValue() {\r\n // // window['customPageSize'] = false;\r\n // let value = $(`.${gridIdName}-customPagerSize-input`).val();\r\n // if (!(value <= 0) || !(value == $(gridId).dxDataGrid('instance').option('paging.pageSize'))) {\r\n // $(gridId).dxDataGrid('instance').option('paging.pageSize', value);\r\n // (sessionStorage as any).setItem(`${gridIdName}PageSize`, value);\r\n // }\r\n // };\r\n // function pageSizeClass() {\r\n // let pageSize = $(`${gridId} .dx-datagrid-pager`).find('.dx-page-size');\r\n // for (let i = 0; i < pageSize.length; i++) {\r\n // if ($(pageSize[i]).text() == sessionPageSize) $(pageSize[i]).addClass('dx-selection');\r\n // }\r\n // }\r\n // // if ($('.devEx-customPagerSize').length > 0) $('.devEx-customPagerSize').remove();\r\n // $('.devEx-customPagerSize').remove();\r\n // let customPageSize = $(`
`);\r\n // let customPageSizeInput = $(``);\r\n // let customPageSizeBtn = $(``);\r\n // let sessionPageSize = sessionStorage.getItem(`${gridIdName}PageSize`);\r\n // customPageSize.append(customPageSizeInput).append(customPageSizeBtn);\r\n // $(`${gridId} .dx-datagrid-pager .dx-page-sizes`).append(customPageSize);\r\n // // }\r\n // if (sessionPageSize) {\r\n // $(customPageSizeInput).val(sessionPageSize);\r\n // // ($(gridId) as any).dxDataGrid('instance').pageSize(sessionPageSize);\r\n // setTimeout(() => { pageSizeClass() }, 200);\r\n // }\r\n // else {\r\n // const pageSize = $(gridId).dxDataGrid('instance').option('paging.pageSize');\r\n // if (pageSize != undefined) {\r\n // $(customPageSizeInput).val(pageSize);\r\n // } else {\r\n // let allowedPageSize = $(gridId).dxDataGrid('instance').option('pager.allowedPageSizes');\r\n // $(customPageSizeInput).val(allowedPageSize[0]);\r\n // }\r\n // pageSizeClass();\r\n // }\r\n\r\n // $(customPageSizeInput).on('blur', () => {\r\n // setCustomPagerSizeInputValue();\r\n // pageSizeClass();\r\n // });\r\n // $(customPageSizeInput).on('keydown', (e) => {\r\n // if (e.keyCode === 13) {\r\n // setCustomPagerSizeInputValue();\r\n // pageSizeClass();\r\n // }\r\n // });\r\n // $(customPageSizeBtn).off('click').on('click', () => {\r\n // setCustomPagerSizeInputValue();\r\n // pageSizeClass();\r\n // });\r\n // $(`${gridId} .dx-datagrid-pager .dx-page-sizes`).off('click').on('click', (e) => {\r\n // e.stopPropagation();\r\n // })\r\n // $(`${gridId} .dx-datagrid-pager .dx-page-size`).off('click').on('click', (e) => {\r\n // $(e.target).addClass('dx-selection');\r\n // $(customPageSizeInput).val($(e.target).text());\r\n // (sessionStorage as any).setItem(`${gridIdName}PageSize`, $(e.target).text());\r\n // if (gridId === '#userLeadsGridView') {\r\n\r\n // t.HeaderCountSelectedRowsOnGvInDB('#userLeadsGridView');\r\n // setTimeout(function () {\r\n // $('.gvUserLeads-moveIcons').css('display', 'inline-block');\r\n // }, 1000);\r\n // }\r\n // })\r\n // };\r\n // window['setDevExCustomPageSize'] = setDevExCustomPageSize;\r\n\r\n $('[name=\"RoboCall\"]').off('click').on('click', () => {\r\n sessionStorage.setItem('roboCallSettings', 'roboCallSettings');\r\n $('#ps-toggle-check').prop('checked', true).trigger('change');\r\n })\r\n\r\n self.mainHeaderIcons(app);\r\n\r\n\r\n //-------------------------------------------------------------------------------------------------\r\n\r\n // $(document).on('click', '.header-links a[name=\"Reminder\"]', function () { // => reminders.ts\r\n // //t.refreshReminderRows();\r\n // if ($('.reminder-tab .nav-link.active')[0] != undefined) {\r\n // $('.reminder-tab .nav-link.active').trigger('click');\r\n // } else {\r\n // $($('.reminder-tab .nav-link')[0]).trigger('click');\r\n // }\r\n // window['CloseMenuOnFirstTimeOpen'] = false;\r\n // });\r\n\r\n // $(document).on('click', '.alertMsg .close-alertmsg', function () {\r\n // $('.alertMsg .show').removeClass('show').addClass('hide');\r\n // });\r\n\r\n $(document).on('click', '.loginModal-close', function (event) {\r\n // if (window.location.pathname !== '/Account/ResetPassword') {\r\n // return;\r\n // }\r\n if ($('.loginModal-resetPass-form').is(':visible')) return;\r\n\r\n const signIn = '
  • ' +\r\n 'Sign In' +\r\n '
  • ';\r\n $('.nav.header-links').empty().append(signIn);\r\n self.businesSearchSessionOver();\r\n });\r\n\r\n $('#newInfo').on('hidden.bs.modal', (e) => {\r\n if ($('.reminder-tab a.nav-link.active')[0]) {\r\n const leadName = $('#newInfo .companyName .text-ellipsis').text();\r\n\r\n $(`.newMsg div[data-lead=\"${self.Crm.LeadId}\"] span`).text(leadName);\r\n }\r\n\r\n });\r\n\r\n $(document).on('shown.bs.modal', '#shoppingCartModal', function () {\r\n self.shoppingCart();\r\n });\r\n $(document).on('hidden.bs.modal', '#shoppingCartModal', function () {\r\n $('.gvShoppingCartTotal').dxDataGrid('dispose');\r\n $('.gvShoppingCart').dxDataGrid('dispose');\r\n });\r\n\r\n window['PackageSold'] = PackageSold;\r\n\r\n $(document).on('click', '.shoppingCart-btn', function (event) {\r\n const amount = parseFloat($('.gvShoppingCartTotal-totalAmount').text().replace('Total: ', ''));\r\n //self.showPurchaseModalBase(window['User'].Email, amount);\r\n self.loadPurchaseModal(window['User'].Email, amount, null, false, true);\r\n });\r\n\r\n\r\n // $(document).off('click').on('click', '.modal .close', '.modal .btn-secondary-custom', (e) => {\r\n // e.preventDefault();\r\n // e.stopPropagation();\r\n // ($(e.target) as any).closest('.modal').modal('hide');\r\n // })\r\n\r\n // === alert notification on clicks ===\r\n let lastEvents = null;\r\n const userId = window['User']?.Id;\r\n if (localStorage['events']) {\r\n lastEvents = JSON.parse(localStorage['events']);\r\n if (lastEvents['time']) {\r\n if (lastEvents['user'] != userId) lastEvents = null;\r\n else if (Date.now() - lastEvents.time > 60000 * 2) {\r\n lastEvents = null;\r\n }\r\n }\r\n else\r\n lastEvents = null;\r\n }\r\n\r\n const showAlertNotification = (eventsClicks) => {\r\n if (eventsClicks.length > 0) {\r\n self.clicksEvent(eventsClicks, true);\r\n $('.hideToast').show();\r\n $('.hideToast-badge').text(eventsClicks.length)\r\n } else {\r\n $('.hideToast').hide();\r\n }\r\n }\r\n\r\n const showEventsCompanyNotification = (companyEvents) => {\r\n if (companyEvents.length > 0) {\r\n self.companyEvent(companyEvents, true);\r\n $('.hideToastCompany').show();\r\n $('.hideToastCompany-badge').text(companyEvents.length)\r\n } else {\r\n $('.hideToastCompany').hide();\r\n }\r\n }\r\n\r\n if (lastEvents) {\r\n const eventsClicks = lastEvents.data.filter(ev => ev.Event.Event == 'click' && !ev.IsHub);\r\n showAlertNotification(eventsClicks);\r\n }\r\n else $.ajax({\r\n url: '/Event/All?IsHub=false&Event=click',\r\n dataType: 'json',\r\n success: (data) => {\r\n const eventsClicks = data.filter(ev => ev.Event.Event == 'click' && !ev.IsHub);\r\n localStorage['events'] = JSON.stringify({\r\n time: Date.now(),\r\n data: eventsClicks.map(e => {\r\n return {\r\n LeadId: e.LeadId,\r\n Id: e.Id,\r\n tabName: e.tabName,\r\n Event: {\r\n timestamp: e.Event.timestamp,\r\n Event: e.Event.Event\r\n },\r\n lastStats: {\r\n LastEvent: e.lastStats.LastEvent,\r\n clicks: e.lastStats.Clicks\r\n },\r\n BusinessRowInfo: {\r\n Id: e.BusinessRowInfo.Id,\r\n Company_Name: e.BusinessRowInfo.Company_Name,\r\n First_Name_01: e.BusinessRowInfo.First_Name_01,\r\n Last_Name_01: e.BusinessRowInfo.Last_Name_01,\r\n }\r\n }\r\n }),\r\n user: userId\r\n });\r\n\r\n showAlertNotification(eventsClicks);\r\n }\r\n });\r\n\r\n $.ajax({\r\n url: '/Event/All?Event=click&lastMin=15&IsHub=true',\r\n dataType: 'json',\r\n success: (data) => {\r\n showEventsCompanyNotification(data)\r\n }\r\n });\r\n\r\n $(document).on('click', '.hideToast', (ev) => {\r\n $('.clicks-position').css('visibility', 'visible');\r\n $('.clicks-position').css('opacity', '1');\r\n $('.hideToast').fadeOut();\r\n $('.hideToastCompany').fadeOut();\r\n })\r\n $(document).on('click', '.hideToastCompany', (ev) => {\r\n $('.companyToast-position').css('visibility', 'visible');\r\n $('.companyToast-position').css('opacity', '1');\r\n $('.hideToast').fadeOut();\r\n $('.hideToastCompany').fadeOut();\r\n })\r\n $(document).on('click', '.hToast-hide', (ev) => {\r\n $('.clicks-position').css('opacity', '0');\r\n $('.companyToast-position').css('opacity', '0');\r\n setTimeout(() => {\r\n $('.clicks-position').css('visibility', 'hidden');\r\n $('.companyToast-position').css('visibility', 'hidden');\r\n }, 400)\r\n if (+$('.hideToast-badge').text() > 0) $('.hideToast').fadeIn();\r\n if (+$('.hideToastCompany-badge').text() > 0) $('.hideToastCompany').fadeIn();\r\n })\r\n\r\n\r\n $(document).on('click', '.clicks-close', (ev) => {\r\n const event = $(ev.target).closest('.toast-clicks');\r\n const eventId = $(event).data('eventid');\r\n ($(event) as any).toast('hide');\r\n self.removeEventClick(eventId);\r\n })\r\n\r\n // === remove alert notification ===\r\n $(document).on('hidden.bs.toast', '.alertMsg-msg', (ev) => {\r\n if ($(ev.target).hasClass('toast-clicks')) {\r\n if ($('.clicks-position .toast-clicks').length == 1) {\r\n $('.clicks-position').css('opacity', '0');\r\n setTimeout(() => {\r\n $('.clicks-position').css('visibility', 'hidden');\r\n }, 400);\r\n $('.hideToast').hide();\r\n }\r\n }\r\n setTimeout(() => { $(ev.target).remove() }, 5000);\r\n })\r\n\r\n // === /alert notification on clicks ===\r\n\r\n $('.header-links .help').off('click').on('click', (e) => {\r\n // #region === wizard on Consumer Leads ===\r\n //$('.hide-content').show();\r\n //window['wizardStep'] = 1;\r\n //self.popoverWizardRemove();\r\n //self.popoverWizardShow();\r\n // #endregion\r\n\r\n // #region === roboCall alert ===\r\n //const toast = $(`\r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    ${window['moment'](new Date).format('YYYY-MM-DD')}
    \r\n //
    \r\n //
    \r\n //
    Reject
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    +1 (999) 999-9999
    \r\n //
    \r\n //
    \r\n //
    Company Name
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    Claim
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    `);\r\n\r\n //+$('.clicks-position').css('opacity') ? $('.alertMsg-content').prepend(toast) : $('.otherToast-position').prepend(toast);\r\n\r\n //$('.toast-robocall-compName').tooltip('enable');\r\n //$('.btn-toast-robocall-reject').off('click').on('click', (e) => {\r\n // ($(e.currentTarget).closest('.toast') as any).toast('hide');\r\n //});\r\n\r\n //$('.btn-toast-robocall-claim').off('click').on('click', (e) => {\r\n // this.crmCard(1235393, 'Full');\r\n // ($(e.currentTarget).closest('.toast') as any).toast('hide');\r\n //});\r\n\r\n //($(toast) as any).toast('show');\r\n // #endregion\r\n\r\n // #region === Make a wish ===\r\n //if ($('#makeWishModal').length) {\r\n // window['makeWishModal']['makeWishModal']();\r\n //} else {\r\n // const script = document.createElement('script');\r\n // script.src = '/js/makeWishModal.js';\r\n // document.head.append(script);\r\n\r\n // script.onload = () => {\r\n // window['makeWishModal']['makeWishModal']();\r\n // }\r\n //}\r\n // #endregion\r\n\r\n // #region === user history ===\r\n userHistory.userHistoryModal();\r\n // #endregion\r\n })\r\n\r\n const locat = window.location.pathname.toLowerCase();\r\n if (locat == '/business' || locat == '/userleads' || locat == '/hublist' || locat == '/consumer') {\r\n self.getRaiPhones();\r\n }\r\n\r\n function fixShowLinesDevExGrid(idGrid, key = true) {\r\n if (key === false) {\r\n try {\r\n $(idGrid).dxDataGrid('instance').dispose();\r\n } catch (ex) { }\r\n } else {\r\n $(idGrid).dxDataGrid('instance').option('height', 0);\r\n $(idGrid).dxDataGrid('instance').option('height', '100%');\r\n ($(idGrid) as any).dxDataGrid('instance').resize();\r\n let free = $(idGrid).find('.dx-datagrid-rowsview .dx-datagrid-table .dx-freespace-row'); // free space under tr\r\n setTimeout(() => {\r\n if (free.height() > 0) {\r\n free.height(free.height() - 1);\r\n }\r\n }, 500);\r\n }\r\n };\r\n\r\n function PackageSold(id) {\r\n // add devExpress content\r\n\r\n const packageTypesList = [\r\n 'Display',\r\n 'Video',\r\n 'Combo'\r\n ];\r\n const durationList = [\r\n '1 Month',\r\n '2 Months',\r\n '3 Months'\r\n ];\r\n const impressionsList = [\r\n '30k',\r\n '50k',\r\n '100k'\r\n ];\r\n const pixelTracking = [\r\n 'Yes',\r\n 'No'\r\n ];\r\n\r\n if (window['User'] && window['User'].RAI) {\r\n ($('.editCRM-packageSold-amount') as any).dxNumberBox({\r\n format: '$ #.##',\r\n hoverStateEnabled: false,\r\n readOnly: true,\r\n value: 30.00,\r\n });\r\n } else {\r\n ($('.editCRM-packageSold-amount') as any).dxNumberBox({\r\n format: '$ #',\r\n hoverStateEnabled: false,\r\n }).dxValidator({\r\n validationRules: [{\r\n message: 'is required',\r\n type: 'required',\r\n }]\r\n });\r\n }\r\n\r\n $('.editCRM-packageSold-duration').dxSelectBox({\r\n dataSource: durationList,\r\n onValueChanged: (e) => {\r\n let amount = parseInt($('.editCRM-packageSold-duration').dxSelectBox('instance').option('value')) * parseInt($('.editCRM-packageSold-impressions').dxSelectBox('instance').option('value'));\r\n ($('.editCRM-packageSold-amount') as any).dxNumberBox('instance').option('value', amount)\r\n },\r\n value: durationList[0],\r\n });\r\n\r\n $('.editCRM-packageSold-impressions').dxSelectBox({\r\n dataSource: impressionsList,\r\n onValueChanged: (e) => {\r\n let amount = parseInt($('.editCRM-packageSold-duration').dxSelectBox('instance').option('value')) * parseInt($('.editCRM-packageSold-impressions').dxSelectBox('instance').option('value'));\r\n ($('.editCRM-packageSold-amount') as any).dxNumberBox('instance').option('value', `${amount}`);\r\n },\r\n value: impressionsList[0],\r\n });\r\n\r\n //$('#editCRM-Notes-packageSold').val('');\r\n\r\n ($('.editCRM-packageSold-soldDate') as any).dxDateBox({\r\n readOnly: true,\r\n type: 'date',\r\n value: new Date()\r\n });\r\n ($('.editCRM-packageSold-startDate') as any).dxDateBox({\r\n type: 'date',\r\n value: new Date()\r\n });\r\n ($('.editCRM-packageSold-importDate') as any).dxTextBox({\r\n readOnly: true,\r\n value: ''\r\n });\r\n $('.editCRM-packageSold-discountCode').dxTextBox({\r\n value: ''\r\n });\r\n $('.editCRM-packageSold-keyAudience').dxTextBox({\r\n value: ''\r\n });\r\n $('.editCRM-packageSold-geografic').dxTextBox({\r\n value: ''\r\n });\r\n ($('.editCRM-packageSold-pixelTracking') as any).dxRadioGroup({\r\n items: pixelTracking,\r\n layout: 'horizontal',\r\n value: pixelTracking[1],\r\n });\r\n\r\n $('.editCRM-packageSold-landing').dxTextBox({\r\n value: ''\r\n });\r\n $('.editCRM-packageSold-keyMessage').dxTextBox({\r\n value: ''\r\n });\r\n\r\n // /add devExpress content\r\n\r\n // show Package Sold tab\r\n $('.nav-item-createNewOrder').show();\r\n // /show Package Sold tab\r\n\r\n // edit Amount field\r\n $('.editCRM-packageSold-amount + i').on('click', () => {\r\n const btnEdit = $('.btn-editSoldAmount');\r\n const ifBtnDisabled = () => {\r\n let loginLength = ($('#editCRM-packageSold-login').val() as any).length;\r\n let passwordLength = ($('#editCRM-packageSold-password').val() as any).length;\r\n loginLength > 0 && passwordLength > 0 ? btnEdit.prop('disabled', false) : btnEdit.prop('disabled', true);\r\n }\r\n // ($('#createNewOrderPackageSoldAmountEditModal') as any).modal('show');\r\n $('.amountEdit-form').show();\r\n $('#editCRM-packageSold-login').on('input', () => {\r\n ifBtnDisabled();\r\n });\r\n $('#editCRM-packageSold-password').on('input', () => {\r\n ifBtnDisabled();\r\n });\r\n btnEdit.on('click', () => {\r\n ($('.editCRM-packageSold-amount') as any).dxNumberBox('instance').option('readOnly', false);\r\n // ($('#createNewOrderPackageSoldAmountEditModal') as any).modal('hide');\r\n $('.amountEdit-form').hide();\r\n $('.editCRM-packageSold-login').val('');\r\n $('.editCRM-packageSold-password').val('');\r\n $('.editCRM-packageSold-amount .dx-texteditor-input').focus();\r\n })\r\n });\r\n\r\n if (window['User'] && window['User'].RAI) {\r\n $('.editCRM-packageSold-amount .dx-texteditor-input').on('blur', () => {\r\n ($('.editCRM-packageSold-amount') as any).dxNumberBox('instance').option('readOnly', true);\r\n })\r\n } else {\r\n $(document).on('keyup', '.editCRM-packageSold-amount input', function () {\r\n // var amount = ($(this).val() as any).replace(/\\D/g, '');\r\n // $('.editCRM-packageSold-amount').dxTextBox('instance').option('value', null);\r\n // if (!amount)\r\n // return $('.saveCompleteOrder').prop('disabled', true);\r\n\r\n // $('.editCRM-packageSold-amount').dxTextBox('instance').option('value', amount);\r\n $('.saveCompleteOrder').prop('disabled', false);\r\n });\r\n }\r\n\r\n // /edit Amount field\r\n }\r\n }\r\n\r\n // === /if not Home Page ===\r\n super.onReady();\r\n }\r\n\r\n sendScheduleModalLoad(isSendEmailModal: boolean) {\r\n if ($('#sendScheduleModal').length) {\r\n window['sendScheduleModal']['sendScheduleModal'](isSendEmailModal);\r\n } else {\r\n const script = document.createElement('script');\r\n script.src = '/js/sendScheduleModal.js';\r\n document.head.append(script);\r\n\r\n script.onload = () => {\r\n window['sendScheduleModal']['sendScheduleModal'](isSendEmailModal);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * addMinutes(date, minutes): Function\r\n * new date = date + minutes\r\n * \r\n * @param date\r\n * @param minutes\r\n * @returns new date = date + minutes\r\n */\r\n addMinutes(date, minutes) {\r\n return new Date(date.getTime() + minutes * 60000);\r\n }\r\n\r\n /**\r\n * addOneFileMax2MB(): Function\r\n * \r\n * @param target - input data, which changed\r\n * @param fileType = image, audio\r\n * @returns data of added file\r\n */\r\n addOneFileMax2MB(target, fileType) {\r\n const self = this;\r\n const files = target.files;\r\n if (files.length != 1) {\r\n const obj = {\r\n hideCancelIcon: true,\r\n position: 'top',\r\n size: 'sm',\r\n textModal: 'Please choose one file!',\r\n textYesBtn: 'Ok',\r\n };\r\n self.onePropositionModalLoad(obj);\r\n return;\r\n }\r\n if (files[0].size > 2 * 1024 * 1024) {\r\n const obj = {\r\n hideCancelIcon: true,\r\n position: 'top',\r\n size: 'sm',\r\n textModal: 'Sorry, you can\\'t upload photo more than 2 mb',\r\n textYesBtn: 'Ok',\r\n titleModal: `Limit size ${fileType === 'image' ? 'photo' : 'file'}`,\r\n };\r\n self.onePropositionModalLoad(obj);\r\n return;\r\n }\r\n\r\n const dataImage = new FormData();\r\n dataImage.append(fileType, files[0]);\r\n console.log('dataImage', dataImage)\r\n return dataImage;\r\n }\r\n\r\n applyFilterOnDevExGrid(ev) {\r\n if (ev.parentType == 'filterRow') {\r\n setTimeout(() => { ev.updateValueTimeout = 0; }, 200);\r\n ev.editorOptions.onEnterKey = () => {\r\n ev.element.find('.dx-apply-button').trigger('dxclick');\r\n }\r\n }\r\n if (ev.parentType === 'searchPanel') {\r\n ev.editorOptions.onValueChanged = undefined;\r\n ev.editorOptions.onEnterKey = (arg) => {\r\n ev.component.searchByText(arg.component.option('value'));\r\n }\r\n }\r\n }\r\n\r\n businesSearchSessionOver() {\r\n if ($('.mh-dashboard').is(':visible') && $('.blackList-dropdown').is(':visible')) {\r\n const self = this;\r\n if ($('.loadersModal').is(':visible')) {\r\n $('.loadersModal').hide();\r\n }\r\n $('.blackList-btn-count').text('0');\r\n $('.blackList-dropdown .dropdown-menu.blackList-dropdown-menu').hide();\r\n\r\n $('.myCrm-link').removeAttr('href');\r\n $('.consumerLeads-link').removeAttr('href');\r\n\r\n // const signIn = '
  • ' +\r\n // 'Sign In' +\r\n // '
  • ';\r\n // $('.nav.header-links').empty().append(signIn);\r\n\r\n //$('#searchCriteria-save-btn').prop('disabled', true);\r\n $('.btn-sendSearchCriteria').hide();\r\n self.User = null;\r\n window['User'] = null;\r\n\r\n const dialerMinutes = '' +\r\n 'Dialer Minutes: 0';\r\n $('.header2-info-row2').empty().append(dialerMinutes);\r\n\r\n const leadsCount = '' +\r\n 'Leads Credits: 0';\r\n $('.header2-info-row1').empty().append(leadsCount);\r\n\r\n ($('#searchCriteria-list') as any).dxDropDownBox('option', 'disabled', true);\r\n try {\r\n ($('#searchCriteria-list') as any).dxDropDownBox('option', 'value', null);\r\n } catch (e) { }\r\n try {\r\n $('.mainGrid').dxDataGrid('refresh');\r\n } catch (e) { }\r\n } else {\r\n window.location = 'https://databasebuilder.com/' as any;\r\n }\r\n }\r\n\r\n buyLeadsNotSelectedAddToMyCrm() {\r\n const self: any = this;\r\n if (window['IsMainGridResult']) {\r\n window['SeachedKeys'] = $('.mainGrid-result').dxDataGrid('instance').getSelectedRowsData().map(e => e.Id);\r\n self.insertRows('#userLeadsGroupsModal');\r\n $('.mainGrid').hide();\r\n $('.clear-button').trigger('click');\r\n\r\n } else {\r\n let totalLeads = +$('#tooMany').text().replace(/\\D/g, '');\r\n\r\n const totalSelectedLead = [];\r\n const raw = [];\r\n if (self.ActiveBlackList == 2) {\r\n totalLeads = self.LastBlackList.Count(/\\D+/, '');\r\n }\r\n for (let i = 0; i < totalLeads; i += 50) {\r\n $.ajax({\r\n type: 'GET',\r\n url: '/Business/GetBusiness',\r\n data: { take: 50, skip: i },\r\n success: (res) => {\r\n res.data.forEach((data, index) => {\r\n totalSelectedLead[index + i] = data;\r\n raw.push({ data: data, index: i, pos: index });\r\n });\r\n if (raw.length >= totalLeads) {\r\n window['IsActiveBlackList'] = false;\r\n $.get('/Business/RemoveAllFilter', { name: name }, (data, status, ctx) => {\r\n self.UpdateFilters(data, ctx);\r\n self.ActiveBlackList = 0;\r\n self.log('RAW Data', raw, totalSelectedLead);\r\n\r\n window['SeachedKeys'] = totalSelectedLead.map(e => e.Id);\r\n self.insertRows('#userLeadsGroupsModal');\r\n\r\n $('.mainGrid').hide();\r\n $('.clear-button').trigger('click');\r\n })\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n // =>> setCallReminder.ts - scrChangeDate()\r\n //changeDate(timezone: string, f: boolean, d?: any): Date {\r\n // const self = this;\r\n // if (d) d = new Date(d);\r\n // else d = new Date();\r\n // if (f)\r\n // d.setMinutes(d.getMinutes() - (self.getOffset(timezone)));\r\n // else\r\n // d.setMinutes(d.getMinutes() + (self.getOffset(timezone)));\r\n // return d;\r\n //}\r\n\r\n clickOnLabelForDevExField(labelId) {\r\n $(labelId).on('click', (ev) => {\r\n const elId = `#${$(ev.currentTarget).attr('for')}`;\r\n const type = $(elId).data().dxComponents[0];\r\n ($(elId) as any)[type]('instance').focus();\r\n })\r\n }\r\n\r\n clicksEvent(data, firstLoad = false) {\r\n const self = this;\r\n if (!firstLoad) {\r\n $('.hideToast').addClass('anim');\r\n setTimeout(() => { $('.hideToast').removeClass('anim') }, 2000);\r\n }\r\n data.forEach(item => {\r\n const date = firstLoad ? new Date(item.Event.timestamp * 1000) : new Date(item.event.timestamp * 1000);\r\n\r\n const toast = $(`
    `);\r\n const buttonClose = $('');\r\n const toastBody = $('
    ');\r\n\r\n toastBody.append(`
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ${firstLoad ? item.BusinessRowInfo.Company_Name : item.businessRowInfo.company_Name}\r\n
    \r\n
    \r\n
    Tab Name: ${item.tabName}
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ${(window as any).moment(date).utcOffset(window['userTimezone'].Offset).format('L, LT')}
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    `);\r\n toastBody.find('.clicks-content').on('click', ev => {\r\n const event = $(ev.target).closest('.toast-clicks');\r\n const leadId = firstLoad ? item.BusinessRowInfo.Id : item.businessRowInfo.id;\r\n const eventId = firstLoad ? item.Id : item.id;\r\n //self.getCRMCardByLeadId(leadId);\r\n self.crmCard(leadId, 'Full');\r\n ($(event) as any).toast('hide');\r\n self.removeEventClick(eventId);\r\n });\r\n $(toast).append(buttonClose).append(toastBody);\r\n $('.alertMsg-content').prepend(toast);\r\n ($(toast) as any).toast('show');\r\n\r\n if (!firstLoad) {\r\n let oldClicks = +$('.hideToast-badge').text()\r\n oldClicks++;\r\n $('.hideToast-badge').text(oldClicks)\r\n }\r\n })\r\n }\r\n\r\n companyEvent(data, firstLoad = false) {\r\n const self = this;\r\n if (!firstLoad) {\r\n $('.hideToastCompany').addClass('anim');\r\n setTimeout(() => { $('.hideToastCompany').removeClass('anim') }, 2000);\r\n }\r\n data.forEach(item => {\r\n const date = item.lastStats.LastEvent;\r\n\r\n const toast = $(`
    `);\r\n const buttonClose = $('');\r\n const toastBody = $('
    ');\r\n\r\n toastBody.append(`
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ${firstLoad ? item.BusinessRowInfo.Company_Name : item.businessRowInfo.company_Name}\r\n
    \r\n
    \r\n
    Tab Name: ${item.tabName}
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ${(window as any).moment(date + 'Z').utcOffset(window['userTimezone'].Offset).format('L, LT')}
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    `);\r\n toastBody.find('.company-content').on('click', ev => {\r\n\r\n const event = $(ev.target).closest('.toast-company');\r\n const leadId = firstLoad ? item.BusinessRowInfo.Id : item.businessRowInfo.id;\r\n const eventId = firstLoad ? item.Id : item.id;\r\n //self.getCRMCardByLeadId(leadId);\r\n self.crmCard(leadId, 'Full');\r\n });\r\n $(toast).append(buttonClose).append(toastBody);\r\n $('.companyToast-content').append(toast);\r\n ($(toast) as any).toast('show');\r\n\r\n if (!firstLoad) {\r\n let oldClicks = +$('.hideToastCompany-badge').text()\r\n oldClicks++;\r\n $('.hideToastCompany-badge').text(oldClicks)\r\n }\r\n })\r\n }\r\n\r\n createCookie(name, value, days?) {\r\n let expires;\r\n if (days) {\r\n //const date = new Date();\r\n const date = new Date(days);\r\n date.setTime(date.getTime() + (12 * 30 * 24 * 60 * 60 * 1000));\r\n expires = `expires=${(date as any).toGMTString()}`;\r\n }\r\n else {\r\n expires = '';\r\n }\r\n document.cookie = `${name}=${value}; ${expires}; path=/`;\r\n }\r\n\r\n createNewTabButton(modalId) {\r\n ($(`${modalId} .gvLeadsGroups`) as any).dxDropDownBox('instance').close();\r\n $(`${modalId} .tabNewWrapper`).css('visibility', 'visible');\r\n $(`${modalId} .addNewList-btn`).prop('disabled', true);\r\n $(`${modalId} .addNewList`).val('').focus();\r\n this.createNewTabOnDB(modalId)\r\n }\r\n\r\n createNewTabOnDB(modalId) {\r\n $(`${modalId} .addNewList`).on('input', (ev) => {\r\n const value = $(ev.currentTarget).val() as string;\r\n value.length > 0 ? $('.addNewList-btn').prop('disabled', false) : $('.addNewList-btn').prop('disabled', true);\r\n });\r\n\r\n $(`${modalId} .addNewList-btn`).off('click').on('click', (ev) => {\r\n ev.preventDefault();\r\n //const modalId = $(e.target).closest('.modal').attr('id');\r\n const name = $(`${modalId} .addNewList`).val();\r\n const gvLeadsGroups = $(`${modalId} .gvLeadsGroups`);\r\n\r\n $.post('/UserLeads/Add', {\r\n //isConsumer: window.location.pathname.toLowerCase() == '/consumer',\r\n isHub: $(`${modalId} .addToCRM-tabs`).length > 0 ? ($(`${modalId} .addToCRM-tabs .nav-link.active`).text() != 'Add to My-DB') : false,\r\n name: name,\r\n },\r\n (data) => {\r\n ($('.gvLeadsGroupsList') as any).dxDataGrid('instance').refresh();\r\n setTimeout(() => {\r\n ($(gvLeadsGroups) as any).dxDropDownBox('instance').option('value', data.Id);\r\n }, 500);\r\n });\r\n\r\n $(`${modalId} .addNewList`).val('');\r\n $(`${modalId} .tabNewWrapper`).css('visibility', 'hidden');\r\n });\r\n }\r\n\r\n dateRangeWithYearWeekDates(parentId, callback?) {\r\n const currentDay = new Date().getDay();\r\n const currentDate = new Date().getDate();\r\n const firstDateOfWeek = new Date();\r\n const lastDateOfWeek = new Date();\r\n firstDateOfWeek.setDate(currentDate - currentDay + 1);\r\n lastDateOfWeek.setDate(firstDateOfWeek.getDate() + 6);\r\n const lstYears = dateRange10Years();\r\n let isChangeFrom = false;\r\n let isChangeWeek = false;\r\n let weekDays = [];\r\n\r\n const from = `${parentId} .ywftDateRange-devExDateFrom`;\r\n const to = `${parentId} .ywftDateRange-devExDateTo`;\r\n const week = `${parentId} .ywftDateRange-devExWeek`;\r\n const year = `${parentId} .ywftDateRange-devExYear`;\r\n\r\n dateRangeYear();\r\n\r\n function firstLastWeekDates(year, weekNumber) {\r\n const startDateOfYear = new Date(year, 0, 1);\r\n const startDayOfYear = startDateOfYear.getDay();\r\n const daysOnFullWeeks = weekNumber * 7;\r\n const firstLastDatesOfWeek = [];\r\n let firstDateOfWeek = new Date();\r\n let lastDateOfWeek = new Date();\r\n if (startDayOfYear == 0 || startDayOfYear == 6) {\r\n lastDateOfWeek = new Date(year, 0, daysOnFullWeeks + (startDayOfYear ? 2 : 1));\r\n firstDateOfWeek = new Date(year, 0, daysOnFullWeeks - 6 + (startDayOfYear ? 2 : 1));\r\n } else {\r\n lastDateOfWeek = new Date(year, 0, daysOnFullWeeks - startDayOfYear + 1);\r\n firstDateOfWeek = new Date(year, 0, daysOnFullWeeks - startDayOfYear - 5);\r\n }\r\n firstLastDatesOfWeek.push(firstDateOfWeek);\r\n firstLastDatesOfWeek.push(lastDateOfWeek);\r\n\r\n return firstLastDatesOfWeek;\r\n }\r\n\r\n function dateRangeFrom(date) {\r\n ($(from) as any).dxDateBox({\r\n applyValueMode: 'useButtons',\r\n calendarOptions: {\r\n firstDayOfWeek: 1\r\n },\r\n max: new Date(),\r\n onContentReady: () => {\r\n dateRangeTo(weekDays[1]);\r\n },\r\n onValueChanged: (e) => {\r\n //if (!isChangeYear) {\r\n // if (callback) callback();\r\n //}\r\n if (!isChangeWeek) {\r\n isChangeFrom = true;\r\n ($(year) as any).dxSelectBox('instance').option('value', '');\r\n ($(week) as any).dxSelectBox('instance').option('value', '');\r\n ($(week) as any).dxSelectBox('instance').option('disabled', true);\r\n const dateTo = ($(to) as any).dxDateBox('instance');\r\n const dateTempEnd = new Date(e.value.setHours(23, 59, 59, 999));\r\n dateTempEnd.setDate(dateTempEnd.getDate() + 6);\r\n if (($(to) as any).dxDateBox('instance').option('value').getDate() == e.component.option('value').getDate()) {\r\n dateRangeTo(e.value, dateTempEnd);\r\n delete window['setActiveTodayBtn'];\r\n if (callback) callback();\r\n }\r\n else dateRangeTo(e.value, dateTempEnd);\r\n } else {\r\n dateRangeTo(weekDays[1]);\r\n }\r\n },\r\n type: 'date',\r\n value: date,\r\n width: 125\r\n }).dxDateBox('instance');\r\n }\r\n\r\n function dateRangeTo(date, max?) {\r\n let dateStart = new Date();\r\n if (!max) {\r\n dateStart = new Date(date);\r\n dateStart.setDate(dateStart.getDate() - 6);\r\n }\r\n ($(to) as any).dxDateBox({\r\n calendarOptions: {\r\n firstDayOfWeek: 1\r\n },\r\n max: max ?? date,\r\n min: max ? date : dateStart,\r\n onContentReady: () => {\r\n isChangeWeek = false;\r\n isChangeFrom = false;\r\n },\r\n onValueChanged: () => {\r\n isChangeWeek = false;\r\n isChangeFrom = false;\r\n delete window['setActiveTodayBtn'];\r\n if (callback) callback();\r\n },\r\n type: 'date',\r\n value: date,\r\n width: 125\r\n }).dxDateBox('instance');\r\n }\r\n\r\n function dateRangeWeek(year) {\r\n const currYear = new Date().getFullYear();\r\n const date = year == currYear ? new Date() : new Date(year, 11, 31);\r\n const items = setWeeksOfYear(date);\r\n\r\n try {\r\n ($(week) as any).dxSelectBox('instance').dispose();\r\n } catch (ex) { }\r\n\r\n ($(week) as any).dxSelectBox({\r\n disabled: isChangeFrom ? true : false,\r\n dropDownOptions: {\r\n maxHeight: 300\r\n },\r\n items: items,\r\n onSelectionChanged: (e) => {\r\n if (!isChangeFrom) {\r\n const weeks = e.selectedItem;\r\n weekDays = firstLastWeekDates(year, weeks);\r\n isChangeWeek = true;\r\n dateRangeFrom(weekDays[0]);\r\n }\r\n },\r\n //onValueChanged: (e) => {\r\n // console.log('valweek')\r\n // const weeks = e.value;\r\n // const weekDays = firstLastWeekDates(year, weeks);\r\n // isChangeYear = true;\r\n // dateRangeFrom(weekDays[0]);\r\n // dateRangeTo(weekDays[1]);\r\n //},\r\n value: items[0],\r\n width: 94\r\n });\r\n }\r\n\r\n function dateRangeYear() {\r\n ($(year) as any).dxSelectBox({\r\n items: lstYears,\r\n onSelectionChanged: (e) => {\r\n if (!isChangeFrom) dateRangeWeek(e.selectedItem);\r\n },\r\n value: lstYears[0],\r\n width: 94\r\n });\r\n }\r\n\r\n function dateRange10Years() {\r\n const currentYear = new Date().getFullYear();\r\n const startYear = currentYear - 10;\r\n const arrayYears = [];\r\n for (let i = currentYear; i >= startYear; i--) {\r\n arrayYears.push(i);\r\n }\r\n return arrayYears;\r\n }\r\n\r\n function setWeeksOfYear(date) {\r\n //date = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n date.setDate(date.getDate() + 1 - (date.getDay() || 7));\r\n const yearStart = new Date(date.getFullYear(), 0, 1);\r\n let weekNo = Math.round(((((date as any) - (yearStart as any)) / 86400000) + 1) / 7);\r\n if (yearStart.getDay() != 0 && yearStart.getDay() != 6) weekNo++;\r\n\r\n const arrayWeeks = [];\r\n for (let i = weekNo; i >= 1; i--) {\r\n arrayWeeks.push(`${i}`);\r\n }\r\n return arrayWeeks;\r\n\r\n //date = new Date(date.getTime());\r\n //date.setHours(0, 0, 0, 0);\r\n //date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);\r\n //const week1 = new Date(date.getFullYear(), 0, 4);\r\n //return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);\r\n\r\n }\r\n }\r\n\r\n defaultOnLogin(callback?: Function) {\r\n this.log('defaultOnLogin');\r\n const self = this as any;\r\n const name = $('#welcomeUser').html();\r\n\r\n const connection = new window['signalR'].HubConnectionBuilder().withUrl('/taskhub').build();\r\n window['TaskConnection'] = connection;\r\n connectionStart(connection);\r\n connectionEvents(connection);\r\n SchedulerUserNotification(new window['signalR'].HubConnectionBuilder().withUrl('/timehub').build());\r\n $.get('/Home/GetMenu', data => {\r\n window['logIn'] = true;\r\n window['User'] = {\r\n Email: data.Email,\r\n Manager: data.Manager,\r\n UserName: data.UserName,\r\n RAI: data.RAI,\r\n AccessToHub: data.AccessToHub,\r\n AccessToMove: data.AccessToMove,\r\n Id: data.Id,\r\n Leads: data.Leads,\r\n Minutes: data.Minutes,\r\n ParentId: data.ParentId\r\n };\r\n if (data.RAI) {\r\n $('#onlyPrimaryRecords').hide();\r\n $('[name=\"is_primaryExec\"]').hide();\r\n }\r\n window['CUID'] = setInterval(window['CheckUser'], 2000);\r\n $('#mainHeaderPanel').html(data.MainHeader.Result);\r\n $('body').append(data.Reminder.Result);\r\n $('body').append(data.Dashboard.Result);\r\n new Profile(self.debug);\r\n $('#welcomeUser').html(name);\r\n // t.ReminderBell();\r\n if (callback) {\r\n callback(data);\r\n }\r\n\r\n ($('#login-modal') as any).modal('hide');\r\n\r\n self.remindersCountRequests();\r\n\r\n if ($('.blackList-dropdown').is(':visible')) {\r\n\r\n if (self.getCookie('UnregisterCreateSearchCriteria') != ''\r\n && JSON.parse(self.getCookie('UnregisterCreateSearchCriteria')).length > 0) {\r\n self.generatePendingSearchCriteriasGrid(JSON.parse(self.getCookie('UnregisterCreateSearchCriteria')));\r\n ($('#pendingSearchCriteriasModal') as any).modal('show');\r\n }\r\n self.blackListGetCountOfAllValues();\r\n\r\n //($('#searchCriteria-list') as any).dxDropDownBox('option', 'disabled', false);\r\n ($('#searchCriteria-list') as any).dxDropDownBox('instance').dispose();\r\n self.bussinesSearch();\r\n\r\n $('.blackList-dropdown .dropdown-menu.blackList-dropdown-menu').removeAttr('style');\r\n\r\n $('.myCrm-link').attr('href', '/UserLeads');\r\n $('.consumerLeads-link').attr('href', '/Consumer');\r\n }\r\n window['logIn'] = false;\r\n });\r\n }\r\n\r\n devExSearchFilterDelay(ev) {\r\n if (ev.parentType === 'searchPanel' || ev.parentType === 'filterRow') {\r\n ev.updateValueTimeout = 1500;\r\n }\r\n }\r\n\r\n devExSearchFilterMin(ev) {\r\n if (ev.parentType === 'searchPanel' || ev.parentType === 'filterRow') {\r\n setTimeout(() => {\r\n ev.editorOptions.onValueChanged = (arg) => {\r\n if (arg.value.length == 0 || arg.value.length > 2) {\r\n ev.component.searchByText(arg.value);\r\n }\r\n }\r\n }, 100)\r\n }\r\n }\r\n\r\n employeesCategory(val: any) {\r\n switch (val) {\r\n case 'A': window['EmployeesList'].push('Up to 4'); break;\r\n case 'B': window['EmployeesList'].push('5 to 9'); break;\r\n case 'C': window['EmployeesList'].push('10 to 19'); break;\r\n case 'D': window['EmployeesList'].push('20 to 49'); break;\r\n case 'E': window['EmployeesList'].push('50 to 99'); break;\r\n case 'F': window['EmployeesList'].push('100 to 249'); break;\r\n case 'G': window['EmployeesList'].push('250 to 499'); break;\r\n case 'H': window['EmployeesList'].push('500 to 999'); break;\r\n case 'I': window['EmployeesList'].push('1, 000 to 4, 999'); break;\r\n case 'J': window['EmployeesList'].push('5, 000 to 9, 999'); break;\r\n case 'K': window['EmployeesList'].push('10, 000 or more'); break;\r\n case 'U': window['EmployeesList'].push('Unknown'); break;\r\n }\r\n }\r\n\r\n endEmulation(data) {\r\n const self = this;\r\n self.promptModalLoad('Enter manager\\'s password', 'Password?', 'password', 'endEmulation', 'Ok', 'Log Off', endEmulationCallback, logOffCallback);\r\n\r\n function endEmulationCallback() {\r\n const pass = $('#prompt-input').val();\r\n $('#ForceLogin input:first').val(pass);\r\n $.post('/Account/Login', { Email: data, Password: pass }, (data) => {\r\n if (data.error) {\r\n const obj = {\r\n textModal: data.message,\r\n textYesBtn: 'Ok',\r\n titleModal: 'Error!',\r\n };\r\n self.onePropositionModalLoad(obj);\r\n }\r\n else\r\n window.location.pathname = '/MultipleNodeSelection'\r\n });\r\n }\r\n\r\n function logOffCallback() { $(location).attr('href', '/Account/LogOut'); }\r\n }\r\n\r\n formatAMPM(date) {\r\n let hours = date.getHours();\r\n let minutes = date.getMinutes();\r\n const ampm = hours >= 12 ? 'pm' : 'am';\r\n hours = hours % 12;\r\n hours = hours ? hours : 12; // the hour '0' should be '12'\r\n minutes = minutes < 10 ? '0' + minutes : minutes;\r\n const strTime = hours + ':' + minutes + ' ' + ampm;\r\n return strTime;\r\n }\r\n\r\n generateUUID(number) { // === Public Domain/MIT\r\n let d = new Date().getTime(); // === Timestamp\r\n let d2 = ((typeof performance !== 'undefined') && performance.now && (performance.now() * 1000)) || 0; // === Time in microseconds since page-load or 0 if unsupported\r\n return `xxxxxxxx-xxxx-${number}xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g, function (c) {\r\n let r = Math.random() * 16; // === random number between 0 and 16\r\n if (d > 0) { // ===Use timestamp until depleted\r\n r = (d + r) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n } else { // ===Use microseconds since page-load if supported\r\n r = (d2 + r) % 16 | 0;\r\n d2 = Math.floor(d2 / 16);\r\n }\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n }\r\n\r\n getCookie(c_name) {\r\n if (document.cookie.length > 0) {\r\n let c_start = document.cookie.indexOf(`${c_name}=`);\r\n if (c_start != -1) {\r\n c_start = c_start + c_name.length + 1;\r\n let c_end = document.cookie.indexOf(';', c_start);\r\n if (c_end == -1) {\r\n c_end = document.cookie.length;\r\n }\r\n return unescape(document.cookie.substring(c_start, c_end));\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n //getCRMCardByLeadId(leadId: any) {\r\n // const self = this;\r\n // // //var leadId = $(this).data('lead');\r\n // // ($('#newInfo') as any).modal('show');\r\n // // t.Crm.IsShowCRM = true;\r\n // // t.Crm.GetFullBusinessRow(leadId, function (fulldata, darkSky, coord) {\r\n // // t.Crm.OnGetBusiness(fulldata, darkSky, coord);\r\n // // t.Crm.CRMEdit(fulldata);\r\n // // $('#changeLeadModal').off('shown.bs.modal').on('shown.bs.modal',\r\n // // (e) => {\r\n // // if (e.target.id == 'changeLeadModal')\r\n // // t.Crm.CRMLoadEdit(fulldata);\r\n // // $(e.target).css('background-color', 'transparent');\r\n // // }\r\n // // )\r\n // // });\r\n // self.crmCard(leadId, 'Full');\r\n //}\r\n\r\n getCategory(\r\n target: string,\r\n IsHub?: boolean,\r\n id?: number,\r\n onReady?: Function,\r\n onSelect?: Function,\r\n onClick?: Function): CategoryColor {\r\n\r\n const c = new ColorCategory(target, id, IsHub);\r\n c.OnClick = onClick;\r\n c.OnSelect = onSelect;\r\n c.catColorGetList((list) => {\r\n window['ListCategory'] = list;\r\n onReady();\r\n });\r\n window['DebugC'] = c;\r\n return c;\r\n }\r\n\r\n /**\r\n * getListOfStatuses(callback?): Function\r\n * Get statuses for leads, which has current user\r\n * Saves on window['listOfStatuses']\r\n * @param callback\r\n */\r\n getListOfStatuses(callback?) {\r\n if (window['listOfStatuses']) {\r\n if (callback) callback();\r\n } else\r\n $.ajax({\r\n type: 'POST',\r\n url: '/UserLeads/GetListOfStatuses',\r\n dataType: 'json',\r\n success: (data) => {\r\n if (data.Result) {\r\n window['listOfStatuses'] = data.Result;\r\n if (callback) callback();\r\n }\r\n },\r\n });\r\n }\r\n\r\n getListTimeZonesAndUserTimezone(callback?) {\r\n const self = this;\r\n new Profile(this.debug);\r\n this.window.RemindersDone = {};\r\n // t.bellRing = this.bellRing;\r\n //self.reminderInit(500);\r\n window['IsReminderSeen'] = false;\r\n\r\n\r\n let count = 0;\r\n $.get('/UserLeads/GetUserTimeZoneList', (data) => {\r\n window['timezonesUSA'] = data.sort((x, y) => x.Offset - y.Offset);\r\n count++;\r\n loadCallbacks(callback);\r\n })\r\n\r\n $.get('/UserLeads/GetUserTimeZoneByCode', (data) => {\r\n window['userTimezone'] = data;\r\n count++;\r\n loadCallbacks(callback);\r\n })\r\n\r\n function loadCallbacks(callback) {\r\n if (count == 2) {\r\n self.getListOfRemindersByDay();\r\n if (callback) callback();\r\n Reminders.load();\r\n self.reminderCount();\r\n }\r\n }\r\n }\r\n\r\n getRaiPhones(callback?) {\r\n if (window['User'] && window['User'].RAI && !window['RaiPhones']) {\r\n $.get('/GetRaiPhones', (data) => {\r\n window['RaiPhones'] = data.data;\r\n if (callback) callback();\r\n });\r\n }\r\n }\r\n\r\n gvLeadsGroups(modalId) {\r\n const self = this;\r\n //let tabSelect = $(`${modalId} #addToCRM-tabs-tab`).find('.nav-link.active');\r\n const loadUrl = '/UserLeads/Tabs';\r\n const leadsToDataSource = window['DevExpress'].data.AspNet.createStore({\r\n key: 'Row.Id',\r\n loadMethod: 'POST',\r\n loadParams: {\r\n //isConsumer: window.location.href.toLowerCase().indexOf('consumer') > 0,\r\n isHub: $(`${modalId} .addToCRM-tabs`).is(':visible') ? $(`${modalId} .addToCRM-tabs .nav-link.active`).attr('href') == '#addToCRM-hubList' : false\r\n },\r\n loadUrl: loadUrl,\r\n onLoaded: (result) => {\r\n console.log('GvLeadsGroupsSrc', result);\r\n },\r\n });\r\n\r\n ($(`${modalId} .gvLeadsGroups`) as any).dxDropDownBox({\r\n dataSource: leadsToDataSource,\r\n contentTemplate: (e) => {\r\n const value = e.component.option('value'),\r\n $dataGrid = $('
    ').dxDataGrid({\r\n dataSource: e.component.getDataSource(),\r\n columns: ['Row.Name'],\r\n height: 200,\r\n hoverStateEnabled: true,\r\n keyExpr: 'Row.Id',\r\n onEditorPreparing: (e) => {\r\n self.devExSearchFilterDelay(e);\r\n self.devExSearchFilterMin(e);\r\n },\r\n onSelectionChanged: (select) => {\r\n $(`${modalId} .btnSaveLeads`).prop('disabled', false);\r\n // $(`${modalId} .btn-addToCrmForRaiUsers`).prop('disabled', false);\r\n\r\n $(`${modalId} .tabNewWrapper`).css('visibility', 'hidden');\r\n const keys = select.selectedRowKeys,\r\n hasSelection = keys.length;\r\n e.component.option('value', hasSelection ? keys[0] : null);\r\n ($(`${modalId} .gvLeadsGroups`) as any).dxDropDownBox('instance').close();\r\n return;\r\n },\r\n scrolling: { mode: 'virtual' },\r\n searchPanel: {\r\n visible: true\r\n },\r\n selectedRowKeys: value,\r\n selection: {\r\n allowSelectAll: true,\r\n deferred: false,\r\n mode: 'single',\r\n selectAllMode: 'allPages',\r\n showCheckBoxesMode: 'onClick'\r\n },\r\n showBorders: true\r\n });\r\n\r\n this.dataGrid = $dataGrid.dxDataGrid('instance');\r\n\r\n e.component.on('valueChanged', (args) => {\r\n const value = args.value;\r\n this.dataGrid.selectRows(value, false);\r\n });\r\n\r\n const $div = $('
    ');\r\n const buttons = $('
    ');\r\n const buttonAdd = $('');\r\n const buttonCancel = $('');\r\n\r\n $div.append($dataGrid);\r\n buttons.append(buttonCancel).append(buttonAdd);\r\n $div.append(buttons);\r\n\r\n buttonAdd.on('click', () => self.createNewTabButton(modalId))\r\n buttonCancel.on('click', () => ($(`${modalId} .gvLeadsGroups`) as any).dxDropDownBox('instance').close())\r\n\r\n return $div;\r\n },\r\n displayExpr: (item) => {\r\n return item && item.Row.Name;\r\n },\r\n placeholder: 'Tab',\r\n showClearButton: false,\r\n valueExpr: 'Row.Id',\r\n // height: 30,\r\n width: '100%',\r\n });\r\n\r\n $(`${modalId} #addToCRM-tabs-tab .nav-link`).off('shown.bs.tab').on('shown.bs.tab', () => {\r\n ($(`${modalId} .gvLeadsGroups`) as any).dxDropDownBox('dispose');\r\n self.gvLeadsGroups(modalId);\r\n $(`${modalId} .btnSaveLeads`).prop('disabled', true);\r\n })\r\n }\r\n\r\n /**\r\n * hideFilterIconOnDevExGrid(ev): Function\r\n * hide dxApplyFilter in grid\r\n * \r\n * @param ev - onContentReady event on grid\r\n */\r\n hideFilterIconOnDevExGrid(ev) {\r\n const toolbar = ev.element.find('.dx-toolbar-after')[0];\r\n const filterBtn = $(toolbar).find('[aria-label=\"Apply filter\"]')[0];\r\n const isApplyFilterVisible = $(filterBtn).is(':visible');\r\n const toolbarBtnsList = $(toolbar).find('.dx-item');\r\n if (!isApplyFilterVisible && toolbarBtnsList.length == 1) {\r\n const headerPanel = ev.element.find('.dx-datagrid-header-panel')[0];\r\n $(headerPanel).hide();\r\n }\r\n }\r\n\r\n hideTooltip() {\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip('hide');\r\n }\r\n\r\n /**\r\n * ifVisibleMyCompanyDb()\r\n * if page == My-DB or page == Company-DB and grid changed - refresh grid\r\n */\r\n ifVisibleMyCompanyDb() {\r\n const self = this;\r\n if ($('#userLeadsGridView').length) {\r\n try {\r\n $('#userLeadsGridView').dxDataGrid('instance').deselectAll();\r\n $('#userLeadsGridView').dxDataGrid('instance').refresh(true);\r\n setTimeout(() => { self.preloader(false); }, 300)\r\n } catch (ex) { }\r\n } else {\r\n self.preloader(false);\r\n }\r\n }\r\n\r\n initNewBlackList() {\r\n const self = this;\r\n const blackList = $('#addToCRM-blackList');\r\n if (window['IsActiveBlackList']) {\r\n blackList.prop('disabled', true);\r\n blackList.prop('checked', true);\r\n }\r\n else {\r\n blackList.prop('checked', false);\r\n blackList.prop('disabled', false);\r\n }\r\n\r\n if ($('#mainGridResultModal').is(':visible')) {\r\n blackList.prop('disabled', $('#mainGridResultModal').data('blackList'));\r\n blackList.prop('checked', $('#mainGridResultModal').data('blackList'));\r\n }\r\n self.LastBlackList = null;\r\n self.ActiveBlackList = 0;\r\n blackList.off('change').on('change', (e) => {\r\n self.preloader(true);\r\n const b = ((e.target as any).checked);\r\n if (b) {\r\n if (self.LastBlackList) {\r\n next(self.LastBlackList);\r\n }\r\n else {\r\n if (window['SeachedKeys']?.length) {\r\n self.ActiveBlackList = 1;\r\n $.post('/Business/CheckBusiness', {\r\n ids: window['SeachedKeys']\r\n }, data => {\r\n $('#addToCRM-blackList').removeAttr('disable')\r\n self.LastBlackList = data;\r\n self.LastBlackList.Id = 1;\r\n self.ActiveBlackList = 1;\r\n\r\n next(data);\r\n });\r\n }\r\n else {\r\n self.ActiveBlackList = 2;\r\n\r\n $.post('/Business/ActiveBlackList', (data) => {\r\n self.LastBlackList = data;\r\n self.LastBlackList.Id = 2;\r\n\r\n self.ActiveBlackList = 2;\r\n next(data);\r\n })\r\n }\r\n }\r\n }\r\n else {\r\n if (self.ActiveBlackList == 2) {\r\n $.post('/Business/RemoveBlackList', (data) => {\r\n $('#tooMany').text(data.Count);\r\n });\r\n }\r\n $('#userLeadsCountOfTotalRecorsdPopUp').html(window['SeachedKeys'].length.toLocaleString())\r\n self.ActiveBlackList = 0;\r\n self.preloader(false);\r\n }\r\n })\r\n function next(data) {\r\n self.ActiveBlackList = self.LastBlackList.Id;\r\n $('#userLeadsCountOfTotalRecorsdPopUp').html('with blacklist ' + data.Count);\r\n self.preloader(false);\r\n }\r\n }\r\n\r\n insertRows(modalId) {\r\n const self: any = this;\r\n self.preloader(true);\r\n // $('.businessClickRemove').hide();\r\n // $('.businessClick').show();\r\n //$('#a_search_tabs').trigger('click'); // ?\r\n const obj = {\r\n keys: window['SeachedKeys'],\r\n tabId: ($(`${modalId} .gvLeadsGroups`) as any).dxDropDownBox('instance').option('value')\r\n };\r\n if (obj.keys == null || obj.keys.length == 0) {\r\n try {\r\n obj.keys = window['IsMainGridResult'] ? $('.mainGrid-result').dxDataGrid('getSelectedRowsData').map(e => e.Id) : $('.mainGrid').dxDataGrid('getSelectedRowsData').map(e => e.Id);\r\n }\r\n catch (e) { console.log }\r\n }\r\n if (self.ActiveBlackList == 1) {\r\n $.post('/Business/CheckList', (data) => {\r\n\r\n obj.keys = data.map(x => x.Id);\r\n next();\r\n })\r\n\r\n }\r\n else next();\r\n\r\n function next() {\r\n $.ajax({\r\n url: '/Business/InsertRows',\r\n method: 'POST',\r\n contentType: 'application/json',\r\n data: JSON.stringify(obj),\r\n success(data) {\r\n if (data.Result) {\r\n $('.daylyLimmit').text(data.LimitBalanceForTodayIs);\r\n try {\r\n $('.mainGrid').dxDataGrid('refresh');\r\n } catch (ex) { console.log }\r\n // $('.maingrid').dxDataGrid('instance').deselectAll();\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: '/ProfileAndSettings/GetExpiresAt',\r\n success: (e) => {\r\n const date = window['moment'](e.subscriptions.ExpiresAt);\r\n const isExpired = Math.floor(((new Date(date)).getTime() - Date.now()) / (86400 * 1000));\r\n if (isExpired >= 0) {\r\n $('.businessClickRemove').hide();\r\n $('.businessClick').css('display', 'flex');\r\n } else {\r\n $('.businessExpiredRemove').hide();\r\n $('.businessExpired').css('display', 'flex');\r\n }\r\n },\r\n });\r\n\r\n //$('.rightPartDFlexRemove').addClass('d-flex');\r\n // window['UserLead'].ShowLeadPopUpInfo({ key: { Data: { Id: data.Ids[0] } } })\r\n // if (data.Ids.length == 1 && $('#newInfo').is(':visible')) { // hide 2022-08-03\r\n if (data.Ids.length == 1) {\r\n\r\n // self.CRM.GetFullBusinessRow(data.Ids[0], function (fulldata, darkSky, coord) {\r\n // self.CRM.OnGetBusiness(fulldata, darkSky, coord);\r\n // self.CRM.CRMEdit(fulldata);\r\n // // self.preloader(false);\r\n // $('#changeLeadModal').off('shown.bs.modal').on('shown.bs.modal',\r\n // (e) => {\r\n // if (e.target.id == 'changeLeadModal') {\r\n // self.CRM.CRMLoadEdit(fulldata);\r\n // }\r\n // $(e.target).css('background-color', 'transparent');\r\n // }\r\n // )\r\n\r\n // });\r\n\r\n self.crmCard(data.Ids[0], 'Full');\r\n }\r\n self.preloader(false);\r\n const countOfLeads = (data.CountOfLeads as number);\r\n window['User'].Leads = countOfLeads;\r\n $('.leadsCount .count').text(Number(countOfLeads).toLocaleString('en'));\r\n +countOfLeads == 0 ? $('.leadsCount span').addClass('limitNull') : $('.leadsCount span').removeClass('limitNull');\r\n } else {\r\n alert(`You have ${data.LimitBalanceForTodayIs} Leads Credit to claim Today`);\r\n self.preloader(false);\r\n ($('#newInfo') as any).modal('hide');\r\n }\r\n }\r\n });\r\n ($('#confirmUserLeadsGroupsModal, #userLeadsGroupsModal, #mainGridResultModal') as any).modal('hide');\r\n\r\n try {\r\n $('.mainGrid').dxDataGrid('deselectAll');\r\n } catch (ex) {\r\n self.log(ex);\r\n }\r\n }\r\n }\r\n\r\n isEmailExist(email, callback: Function) {\r\n $.ajax({\r\n type: 'POST',\r\n url: '/MultipleNodeSelection/IsEmailExist',\r\n data: { email: email },\r\n dataType: 'json',\r\n crossDomain: true,\r\n success: (result) => {\r\n $('.root-preloader').hide();\r\n if (callback) callback(result);\r\n },\r\n error: () => {\r\n $('.root-preloader').hide();\r\n alert('Failed to sent Invitation Email');\r\n }\r\n });\r\n }\r\n\r\n isNotEmpty(value) {\r\n return value !== undefined && value !== null && value !== '';\r\n }\r\n\r\n protected isUserAuthenticated(): boolean {\r\n const w: any = this.window;\r\n return w.User != null;\r\n }\r\n\r\n protected loginModal() {\r\n this.$('.loginModal-forgotPassword').on('click',\r\n function (e: Event) {\r\n e.preventDefault();\r\n $('.loginModal-signIn-form').hide();\r\n $('.loginModal-resetPass-form').show();\r\n $('.loginModal-register-form').hide();\r\n });\r\n }\r\n\r\n mainGridResultModalShow(dataSource, withBlackList?) {\r\n const self = this;\r\n try {\r\n $('#mainGridResultModal').data('blackList', withBlackList ?? false);\r\n $('.mainGrid-result').dxDataGrid({\r\n dataSource: dataSource,\r\n columns: [\r\n 'Company_Name',\r\n {\r\n caption: 'Physical City',\r\n dataField: 'Physical_City',\r\n width: 100\r\n },\r\n {\r\n caption: 'Physical State',\r\n dataField: 'Physical_State',\r\n width: 60\r\n },\r\n {\r\n allowSorting: false,\r\n caption: 'SIC Code',\r\n dataField: 'SIC_Description',\r\n },\r\n {\r\n caption: 'SIC Description',\r\n dataField: 'SIC01_Description',\r\n },\r\n ],\r\n filterRow: {\r\n applyFilter: 'onClick',\r\n visible: true\r\n },\r\n height: 100,\r\n hoverStateEnabled: true,\r\n keyExpr: 'UID',\r\n loadPanel: {\r\n enabled: false\r\n },\r\n onContentReady: (ev) => {\r\n self.preloader(false);\r\n\r\n self.hideFilterIconOnDevExGrid(ev);\r\n\r\n const grid = $('.mainGrid-result').dxDataGrid('instance');\r\n grid.option('height', '100%');\r\n setTimeout(() => {\r\n const gridSelect = grid.getSelectedRowsData();\r\n gridSelect.length > 0 ? $('#mainGridResultModal .mainGridResult-btn').prop('disabled', false) : $('#mainGridResultModal .mainGridResult-btn').prop('disabled', true);\r\n $('.mainGrid-result .dx-datagrid-summary-item:first').text('Total selected ' + gridSelect.length.toLocaleString() + ' leads')\r\n }, 250);\r\n },\r\n onEditorPreparing: (ev) => {\r\n self.applyFilterOnDevExGrid(ev);\r\n },\r\n onSelectionChanged: (e) => {\r\n e.component.refresh(true);\r\n const gridSelect = e.selectedRowKeys;\r\n gridSelect.length > 0 ? $('#mainGridResultModal .mainGridResult-btn').prop('disabled', false) : $('#mainGridResultModal .mainGridResult-btn').prop('disabled', true);\r\n $('.mainGrid-result .dx-datagrid-summary-item:first').text('Total selected ' + gridSelect.length.toLocaleString() + ' leads')\r\n },\r\n paging: {\r\n pageSize: 70\r\n },\r\n rowAlternationEnabled: true,\r\n scrolling: {\r\n mode: 'infinite',\r\n preloadEnabled: true,\r\n scrollByContent: true\r\n },\r\n selectedRowKeys: dataSource.map(x => x.UID),\r\n selection: {\r\n allowSelectAll: true,\r\n mode: 'multiple',\r\n selectAllMode: 'allPages'\r\n },\r\n showBorders: true,\r\n sorting: {\r\n mode: 'multiple'\r\n },\r\n summary: {\r\n calculateCustomSummary: (options) => {\r\n if (options.name === 'selectedLeads') {\r\n const grid = $('.mainGrid-result').dxDataGrid('instance');\r\n const gridSelect = grid.getSelectedRowsData();\r\n options.totalValue = gridSelect.length;\r\n }\r\n },\r\n recalculateWhileEditing: true,\r\n totalItems: [{\r\n displayFormat: 'Total selected {0} leads',\r\n name: 'selectedLeads',\r\n showInColumn: 'Company_Name',\r\n summaryType: 'custom',\r\n valueFormat: (val) => {\r\n const formattedValue = val.toLocaleString();\r\n return formattedValue;\r\n }\r\n }]\r\n }\r\n });\r\n\r\n $('#mainGridResultModal .mainGridResult-btn').text('Buy selected');\r\n ($('#mainGridResultModal') as any).modal('show');\r\n\r\n $('#mainGridResultModal .mainGridResult-btn').off('click').on('click', () => {\r\n const self = this;\r\n self.preloader(true);\r\n self.initNewBlackList();\r\n window['SeachedKeys'] = $('#mainGridResultModal .mainGrid-result').dxDataGrid('instance').getSelectedRowsData().map(x => x.Id);\r\n ($('#userLeadsGroupsModal') as any).modal('show');\r\n self.gvLeadsGroups('#userLeadsGroupsModal');\r\n\r\n const countOfLeads = $('.mainGrid-result').dxDataGrid('instance').getSelectedRowKeys().length;\r\n $('#userLeadsCountOfTotalRecorsdPopUp').text(countOfLeads);\r\n $('.addToCRM-text-item.text-item2').show();\r\n\r\n window['IsMainGridResult'] = true;\r\n self.preloader(false);\r\n })\r\n }\r\n catch (ex) {\r\n // alert('Source Was Removed!');\r\n ($('#sourceRemovedModal') as any).modal('show');\r\n }\r\n }\r\n\r\n mainHeaderIcons(app) {\r\n const self = this;\r\n self.sendEmailButton(app);\r\n }\r\n\r\n protected menuItemClick(el) {\r\n let preventDefault = false;\r\n const name = el.name;\r\n if (name == 'AuthInMenuItem') {\r\n this.$('.loginModal-signIn-form').hide();\r\n this.$('.loginModal-register-form').show();\r\n this.$('.create-show').show();\r\n this.$('.register-show').hide();\r\n this.$('#login-modal').modal('show');\r\n preventDefault = true;\r\n } else if (name == 'SignInMenuItem') {\r\n this.$('#login-modal').modal('show');\r\n preventDefault = true;\r\n } else if (name == 'RegAuthInMenuItem') {\r\n this.$('.loginModal-signIn-form').hide();\r\n this.$('.loginModal-register-form').show();\r\n this.$('.create-show').hide();\r\n this.$('.register-show').show();\r\n this.$('#login-modal').modal('show');\r\n preventDefault = true;\r\n } else if (name == 'SampleLeadItem') {\r\n if (this.isUserAuthenticated()) {\r\n this.$('#leadPricingModal').modal('show');\r\n } else {\r\n this.$('.loginModal-signIn-form').hide();\r\n this.$('.loginModal-register-form').show();\r\n this.$('.create-show').hide();\r\n this.$('.register-show').show();\r\n this.$('#login-modal').modal('show');\r\n }\r\n preventDefault = true;\r\n } else if (name == 'import') {\r\n localStorage.setItem('import', 'import');\r\n window.location.assign('/Userleads');\r\n } else if (name == 'pricingPopup') {\r\n if (this.isUserAuthenticated()) {\r\n window.location.pathname = '/Price/CRM';\r\n } else {\r\n this.$('.loginModal-signIn-form').hide();\r\n this.$('.loginModal-register-form').show();\r\n this.$('.create-show').hide();\r\n this.$('.register-show').show();\r\n this.$('#login-modal').modal('show');\r\n }\r\n preventDefault = true;\r\n } else if (name == 'home') {\r\n } else if (name?.length > 2) {\r\n this.$('#' + name).modal('show');\r\n preventDefault = true;\r\n }\r\n return preventDefault;\r\n }\r\n\r\n onSendGrid: (data: any, type?: string) => void;\r\n\r\n orderSummaryGrid(data: any) {\r\n const self = this;\r\n (Array as any).prototype.sum = function (prop) {\r\n let total = 0\r\n for (let i = 0, _len = this.length; i < _len; i++) {\r\n total += this[i][prop]\r\n }\r\n return total\r\n }\r\n\r\n const cartRows = data;\r\n\r\n const ShoppingCartTotalData = [];\r\n\r\n const fullValues = cartRows.filter(function (el) { return el.SourceAction == 'Full' });\r\n if (fullValues[0] != null) {\r\n ShoppingCartTotalData.push({\r\n 'ID': ShoppingCartTotalData.length + 1,\r\n 'SourceAction': 'Full',\r\n 'Quantity': (fullValues as any).sum('Quantity'),\r\n 'Amount': (fullValues as any).sum('PriceTotal')\r\n })\r\n }\r\n const callValues = cartRows.filter(function (el) { return el.SourceAction == 'Call' });\r\n if (callValues[0] != null) {\r\n ShoppingCartTotalData.push({\r\n 'ID': ShoppingCartTotalData.length + 1,\r\n 'SourceAction': 'Call',\r\n 'Quantity': (callValues as any).sum('Quantity'),\r\n 'Amount': (callValues as any).sum('PriceTotal')\r\n })\r\n }\r\n const mailValues = cartRows.filter(function (el) { return el.SourceAction == 'Mail' });\r\n if (mailValues[0] != null) {\r\n ShoppingCartTotalData.push({\r\n 'ID': ShoppingCartTotalData.length + 1,\r\n 'SourceAction': 'Mail',\r\n 'Quantity': (mailValues as any).sum('Quantity'),\r\n 'Amount': (mailValues as any).sum('PriceTotal')\r\n })\r\n }\r\n\r\n $('.gvShoppingCartTotal').dxDataGrid({\r\n dataSource: ShoppingCartTotalData,\r\n allowColumnReordering: true,\r\n allowColumnResizing: true,\r\n columnAutoWidth: true,\r\n columns: [{\r\n caption: 'Item',\r\n dataField: 'SourceAction'\r\n },\r\n {\r\n caption: 'Quantity',\r\n dataField: 'Quantity'\r\n }, {\r\n cellTemplate: (container, item) => {\r\n const data = item.data;\r\n $('
    ')\r\n .append($('$ ' + data.Amount.toFixed(2) + ''))\r\n .appendTo(container);\r\n },\r\n dataField: 'Amount',\r\n format: '####,###,###.##'\r\n }],\r\n onEditorPreparing: (e) => {\r\n self.devExSearchFilterDelay(e);\r\n self.devExSearchFilterMin(e);\r\n },\r\n showBorders: true,\r\n summary: {\r\n totalItems: [{\r\n column: 'Amount',\r\n cssClass: 'gvShoppingCartTotal-totalAmount',\r\n displayFormat: 'Total: {0}',\r\n summaryType: 'sum',\r\n valueFormat: '####,###,###.##',\r\n }],\r\n }\r\n });\r\n }\r\n\r\n phoneCellTemplateOnDevExGrid(phoneNumber) {\r\n phoneNumber = phoneNumber?.replace(/\\D+/g, '').slice(-10) ?? '';\r\n const phonePhormatting = phoneNumber ? `+1 (${phoneNumber.slice(0, 3)}) ${phoneNumber.slice(3, 6)} - ${phoneNumber.slice(6)}` : '';\r\n const div = $('
    ');\r\n div.append(phonePhormatting);\r\n return div;\r\n }\r\n\r\n preloader(isShow: boolean) {\r\n isShow ? $('.root-preloader').show() : $('.root-preloader').hide();\r\n }\r\n\r\n /**\r\n * removeAllSpaces(str): Function\r\n * removes spaces from a string\r\n * \r\n * @param str: String\r\n * @returns str without spaces\r\n */\r\n removeAllSpaces(str) {\r\n return !!str ? str.replace(/\\s+/g, '') : str;\r\n }\r\n\r\n removeEventClick(eventId) {\r\n $.get('/Event/Remove', { Id: eventId }, () => {\r\n let oldClicks = +$('.hideToast-badge').text()\r\n oldClicks--;\r\n $('.hideToast-badge').text(oldClicks);\r\n });\r\n }\r\n\r\n requestErrorActions(error) {\r\n $('.root-preloader').hide();\r\n alert('Error! Send to Admin.')\r\n console.error('Error fetching data:', error);\r\n }\r\n\r\n sendEmailButton(app) {\r\n $(document).off('click', '.mh-sendEmail').on('click', '.mh-sendEmail', () => {\r\n app.sendEmailModalLoad();\r\n //app.sendEmailModalLoad(() => {\r\n // if (app['addEmailToSendEmail']) {\r\n // return app.addEmailToSendEmail();\r\n // // TODO\r\n // //console.log('sennnnnnnndddd', app.addEmailToSendEmail());\r\n // }\r\n //})\r\n })\r\n //$(document).off('click', '.mh-sendEmail').on('click', '.mh-sendEmail', () => {\r\n // app.sendEmailModalLoad(() => {\r\n // if (app['addEmailToSendEmail']) {\r\n // app.addEmailToSendEmail();\r\n // }\r\n // })\r\n //})\r\n }\r\n\r\n shoppingCart() {\r\n const self = this;\r\n // #region Shoppig Cart Modal\r\n\r\n const shoppingCartData = (window['DevExpress'] as any).data.AspNet.createStore({\r\n deleteUrl: '/ProfileAndSettings/RemoveShopingCartLead',\r\n key: 'Id',\r\n loadUrl: '/ProfileAndSettings/GetCartLeadsList',\r\n onBeforeSend: function (method, ajaxOptions) {\r\n ajaxOptions.xhrFields = { withCredentials: true };\r\n },\r\n updateUrl: '/ProfileAndSettings/EditCartLeadName',\r\n onLoaded: (result) => {\r\n console.log('ShopingCardSrc', result);\r\n self.orderSummaryGrid(result);\r\n },\r\n onLoading: (loadOptions) => {\r\n //console.log('ShopingCardSrcLoading', loadOptions);\r\n },\r\n });\r\n\r\n $('.gvShoppingCart').dxDataGrid({\r\n dataSource: shoppingCartData,\r\n allowColumnReordering: true,\r\n allowColumnResizing: true,\r\n columnAutoWidth: true,\r\n columns: [{\r\n allowEditing: true,\r\n cssClass: 'gvShoppingCart-name',\r\n dataField: 'Name',\r\n }, {\r\n allowEditing: false,\r\n cellTemplate: (container, item) => {\r\n const searchDesctription: JQuery = $('Search desctription');\r\n searchDesctription.on('click', c => {\r\n c.preventDefault();\r\n c.stopPropagation();\r\n\r\n const searchCriteria = JSON.parse(item.data.SearchCriterias);\r\n\r\n window['SicDesc'] = [];\r\n window['EmployeesList'] = [];\r\n\r\n searchCriteria.filter(function (el) {\r\n switch (el.Name) {\r\n case 'Women_Owned': return $('#searchDescriptionModal li.WOB').show();\r\n case 'Presence_Of_URL': return $('#searchDescriptionModal li.bWithWeb').show();\r\n case 'Phoneable': return $('#searchDescriptionModal li.bwithPhNum').show();\r\n case 'is_primaryExec': return $('#searchDescriptionModal li.shOnPR').show();\r\n case 'Presence_Of_Email': return $('#searchDescriptionModal li.bWithEm').show();\r\n case 'New_Business_Date_Filter': return $('#searchDescriptionModal li.newBList').show();\r\n\r\n case 'Employees': return self.employeesCategory(el.Value);\r\n\r\n case 'SIC_Description': return window['SicDesc'].push(el.Value);\r\n case 'proximity': return $('#searchDescriptionModal li.proximity').show().text('').append('Area Codes: ' + el.Value);\r\n }\r\n });\r\n\r\n $('#searchDescriptionModal li.bcSic').show().text('').append('Business Category (SIC): ' + JSON.stringify(window['SicDesc']));\r\n $('#searchDescriptionModal li.numOfEmpl').show().text('').append('Number of Employees: ' + JSON.stringify(window['EmployeesList']));\r\n })\r\n\r\n const data = item.data;\r\n $('
    ')\r\n .append($('
    ' + data.Source + '
    '))\r\n .append($('
    ' + data.SourceAction + '
    '))\r\n .append(searchDesctription)\r\n .appendTo(container);\r\n },\r\n dataField: 'Item',\r\n }, {\r\n allowEditing: false,\r\n caption: 'Unit Price',\r\n cellTemplate: (container, item) => {\r\n const data = item.data;\r\n $('
    ')\r\n .append($('$ ' + data.UnitPrice + ''))\r\n .appendTo(container);\r\n },\r\n cssClass: 'gvShoppingCart-unitPrice',\r\n dataField: 'UnitPrice',\r\n }, {\r\n allowEditing: false,\r\n dataField: 'Quantity',\r\n cellTemplate: (container, item) => {\r\n const modify: JQuery = $('Modify search');\r\n modify.on('click', c => {\r\n c.preventDefault();\r\n c.stopPropagation();\r\n\r\n const searchCriteria = JSON.parse(item.data.SearchCriterias);\r\n self.createCookie('modifySearchFilters', JSON.stringify(searchCriteria as any), new Date);\r\n\r\n if (window.location.href == window.location.origin + '/Business') {\r\n const ta = self as any;\r\n ta.Filter.AddFilters(searchCriteria);\r\n ($('#shoppingCartModal') as any).modal('hide');\r\n } else {\r\n window.open(window.location.origin + '/Business', '_blank')\r\n }\r\n })\r\n\r\n const data = item.data\r\n $('
    ')\r\n .append($('
    ' + data.Quantity + '
    '))\r\n .append(modify)\r\n .appendTo(container);\r\n },\r\n cssClass: 'gvShoppingCart-quantity',\r\n }, {\r\n allowEditing: false,\r\n caption: 'Total amount',\r\n cellTemplate: (container, item) => {\r\n const data = item.data;\r\n $('
    ')\r\n .append($('$ ' + (data.UnitPrice * data.Quantity).toFixed(2) + ''))\r\n .appendTo(container);\r\n },\r\n cssClass: 'gvShoppingCart-amount',\r\n }\r\n\r\n //{\r\n // width: 60,\r\n // caption: '#',\r\n // cellTemplate: (cell, e) => {\r\n // if (e.rowType == 'data' && e.data) {\r\n // let del: JQuery = $('Delete')\r\n // del.on('click', c => {\r\n // c.preventDefault();\r\n // c.stopPropagation();\r\n\r\n // $.post('/ProfileAndSettings/RemoveShopingCartLead', { id: e.data.Id }, (data) => {\r\n // if (data.status) {\r\n // t.shoppingCart();\r\n // }\r\n // });\r\n // })\r\n // cell.append(del);\r\n // }\r\n // }\r\n //}\r\n ],\r\n editing: {\r\n allowUpdating: true,\r\n allowDeleting: true,\r\n mode: 'cell'\r\n },\r\n onEditorPreparing: (e) => {\r\n self.devExSearchFilterDelay(e);\r\n self.devExSearchFilterMin(e);\r\n },\r\n showBorders: true,\r\n });\r\n // #endregion Shoppig Cart Modal\r\n }\r\n\r\n //showPurchaseModalBase(email: any, amount: any) {\r\n // const self = this;\r\n // const year = new Date().getFullYear().toString().slice(-2);\r\n // const month = new Date().getMonth();\r\n // ($('#purchaseModal') as any).modal('show');\r\n // $('.purchaseModal-preloader').show();\r\n // $('#purchaseModal #customer').val(email);\r\n // $('.purchaseModal-info-text').text(`$ ${amount}`);\r\n // window['PayLeads'] = amount;\r\n // $.post('/ProfileAndSettings/GetCards',\r\n // (data) => {\r\n // if (data.Current !== null && data.Cards.length > 0) {\r\n // $('.purchaseModal-cardsList').dxSelectBox({\r\n // dataSource: data.Cards,\r\n // displayExpr: (item) => {\r\n // let expired;\r\n // (year > item.ExpDate.slice(-2) || (year == item.ExpDate.slice(-2) && month > item.ExpDate.slice(0, 2))) ? expired = '(expired)' : expired = '';\r\n // +expired != 0 ? $('.purchaseModal-btn').prop('disabled', true) : $('.purchaseModal-btn').prop('disabled', false);\r\n // return item && `${item.CardType} ${item.CardName} ending in ...${item.CardEnd} ${expired}`;\r\n // },\r\n // itemTemplate: (data) => {\r\n // let expired;\r\n // (year > data.ExpDate.slice(-2) || (year == data.ExpDate.slice(-2) && month > data.ExpDate.slice(0, 2))) ? expired = '(expired)' : expired = '';\r\n // return `${data.CardType} ${data.CardName} ending in ...${data.CardEnd} ${expired}`;\r\n // },\r\n // value: data.Current,\r\n // valueExpr: 'Id',\r\n // });\r\n\r\n // $('.purchaseModal-btn').text('Pay');\r\n // $('.purchaseModal-btn').off('click').on('click', () => {\r\n // self.preloader(true);\r\n // $.get('/Price/PayLeads', { custId: $('.purchaseModal-cardsList').dxSelectBox('option', 'value'), amont: window['PayLeads'] }, (data) => {\r\n // self.preloader(false);\r\n // ($('#purchaseModal') as any).modal('hide');\r\n\r\n // $('#price-leads-tab span').text(data.Sub.LeadsCount.toLocaleString());\r\n // $('#price-minutes-tab span').text(data.Sub.MinutesCount.toLocaleString());\r\n\r\n // self.remindersCountRequests();\r\n // });\r\n // });\r\n // } else {\r\n // $('.purchaseModal-cardsList').text('No Credit Card!').css('text-align', 'center');\r\n // $('.purchaseModal-btn').text('Add Credit Card');\r\n // $('.purchaseModal-btn').off('click').on('click', () => {\r\n // window['showAddCard'] = true;\r\n // $('#ps-toggle-check').prop('checked', true).trigger('change');\r\n // ($('#purchaseModal') as any).modal('hide');\r\n // })\r\n // }\r\n // $('.purchaseModal-preloader').hide();\r\n // });\r\n\r\n // ($('#purchaseModal') as any).on('hidden.bs.modal', () => {\r\n // $('.purchaseModal-customer-input').val('');\r\n // $('.purchaseModal-cardsList').empty();\r\n // $('.purchaseModal-info-text').empty();\r\n // $('.purchaseModal-cardsList').dxSelectBox('dispose');\r\n // })\r\n //}\r\n\r\n /**\r\n * showUserLeadsGroupsModal(list, selected = 0): Function\r\n * @param list\r\n * @param selected\r\n */\r\n showUserLeadsGroupsModal(list, selected = 0) {\r\n const self = this;\r\n const phones = list.filter(e => !e.Removed).map(e => { return e.Phone }); /** Get phones from data */\r\n const obj = {\r\n phones: phones\r\n };\r\n\r\n self.preloader(true);\r\n if (window['waitMainGrid']) {\r\n window['SeachedKeys'] = list.map(e => e.Id);\r\n self.initNewBlackList();\r\n ($('#userLeadsGroupsModal') as any).modal('show');\r\n self.gvLeadsGroups('#userLeadsGroupsModal');\r\n\r\n const countOfLeads = selected ? selected : $('#lblInfo').text();\r\n $('#userLeadsCountOfTotalRecorsdPopUp').text(countOfLeads);\r\n $('.addToCRM-text-item.text-item2').show();\r\n self.preloader(false);\r\n } else {\r\n $('#addToCRM-blackList').attr('disable', 'disable');\r\n $.post('/Business/GetMultipleBusinessStatus/', obj, (avalibleLeads) => {\r\n self.preloader(false);\r\n const data = list;\r\n const ids = [];\r\n if (avalibleLeads.res) {\r\n data.filter(item => avalibleLeads.res.includes(item.Phone)).forEach(el => {\r\n ids.push(el.Id);\r\n });\r\n $.ajax({\r\n url: '/Business/BusinesesInDB',\r\n method: 'POST',\r\n dataType: 'json',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: JSON.stringify(ids),\r\n success(result) {\r\n\r\n $('#addToCRM-blackList').removeAttr('disable');\r\n const res = new Set(result);\r\n const available = ids.length - res.size;\r\n $('.addToCRM-text-item.text-item3').show();\r\n $('#availableForPurchase').text(available + ' of ' + data.length);\r\n }\r\n });\r\n } else {\r\n data.forEach(el => {\r\n ids.push(el.Id);\r\n })\r\n }\r\n\r\n window['SeachedKeys'] = ids;\r\n self.initNewBlackList();\r\n ($('#userLeadsGroupsModal') as any).modal('show');\r\n self.gvLeadsGroups('#userLeadsGroupsModal');\r\n\r\n const countOfLeads = selected ? selected : $('#lblInfo').text();\r\n $('#userLeadsCountOfTotalRecorsdPopUp').text(countOfLeads);\r\n $('.addToCRM-text-item.text-item2').show();\r\n\r\n const buiedCount = data.filter(el => { if (el.IsInDB == true) return el; }).length;\r\n if (buiedCount > 0) {\r\n // let message = window['BuiedCount'] + ' from ' + window['SeachedKeys'].length + ' have been purchased!';\r\n const message = `Previously Purchased: ${buiedCount}`;\r\n $('.addToCRM-text-item.text-item1').show().text('').text(message);\r\n }\r\n self.preloader(false);\r\n });\r\n }\r\n }\r\n\r\n showUserLicensesCounts() {\r\n $.get('/api/LicenseWithUsers', data => {\r\n $('[name=\"licenses-limit\"]').val(data.License)\r\n $('#price-licenses-tab span.price-licenses-all').text(data.License)\r\n $('#price-licenses-tab span.price-licenses-available').text('(' + data.Users + ')')\r\n $('#licenesWithUsers span.licensesInfo-all').text(data.License)\r\n $('#licenesWithUsers span.licensesInfo-available').text('(' + data.Users + ')')\r\n })\r\n }\r\n\r\n starRating(count) {\r\n let result = count ? '\\n' : '\\n';\r\n //if (count) {\r\n for (let i = 1; i <= 5; i++) {\r\n if (i != count) {\r\n result += ` \\n`;\r\n } else {\r\n result += ` \\n`;\r\n }\r\n }\r\n result += ' \\n';\r\n\r\n return result;\r\n }\r\n\r\n transformPhoneNumberToUSAFormat(phoneNumber) {\r\n if (phoneNumber) {\r\n phoneNumber = phoneNumber?.replace(/\\D+/g, '');\r\n while (phoneNumber.substr(0, 1) == 1) phoneNumber = phoneNumber.substr(1);\r\n if (phoneNumber.length >= 10) {\r\n phoneNumber = `+1 (${phoneNumber.substr(0, 3)}) ${phoneNumber.substr(3, 3)} - ${phoneNumber.substr(6, 4)}`;\r\n } else {\r\n phoneNumber = '-1';\r\n }\r\n }\r\n else phoneNumber = '-1';\r\n return phoneNumber;\r\n }\r\n\r\n weatherWidget(json: any, isDashboard?: boolean) {\r\n const pre = isDashboard ? 'dash' : '';\r\n\r\n let response = JSON.parse(json);\r\n // Convert temperature to Fahrenheit\r\n const currentWeather = Number(Math.round(((response.current.temp_c * 9 / 5) + 32) * 100) / 100);\r\n const iconWeather = response.current.condition.text;\r\n const maxTemp = Math.round(((response.forecast.forecastday[0].day.maxtemp_c * 9 / 5) + 32) * 100) / 100;\r\n const minTemp = Math.round(((response.forecast.forecastday[0].day.mintemp_c * 9 / 5) + 32) * 100) / 100;\r\n\r\n $(`#${pre}CurrentTemp, #${pre}MinTemp, #${pre}MaxTemp`).text('loading...');\r\n $(`#${pre}CurrentTemp`).text('').append(currentWeather.toString());\r\n $(`#${pre}IconWeather`).text('').append(iconWeather);\r\n $(`#${pre}MinTemp`).text('').append(minTemp.toString());\r\n $(`#${pre}MaxTemp`).text('').append(maxTemp.toString());\r\n\r\n switch (iconWeather) {\r\n case 'Clear':\r\n case 'Sunny':\r\n case 'MostlyClear':\r\n case 'SunFlurries':\r\n case 'SunShowers':\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n case 'Partly cloudy':\r\n case 'Mostly clear':\r\n case 'Partly Cloudy':\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n case 'Cloudy':\r\n case 'MostlyCloudy':\r\n case 'Overcast':\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n case 'Light rain':\r\n case 'Moderate rain':\r\n case 'Heavy rain':\r\n case 'Rain':\r\n case 'Patchy rain possible':\r\n case 'BlowingSnow':\r\n case 'Drizzle':\r\n case 'Flurries':\r\n case 'FreezingDrizzle':\r\n case 'FreezingRain':\r\n case 'Hail':\r\n case 'HeavyRain':\r\n case 'WintryMix':\r\n case 'IsolatedThunderstorms':\r\n case 'ScatteredThunderstorms':\r\n case 'StrongStorms':\r\n case 'Thunderstorms':\r\n case 'TropicalStorm':\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n case 'Light snow':\r\n case 'Moderate snow':\r\n case 'Heavy snow':\r\n case 'Snow':\r\n case 'Patchy snow possible':\r\n case 'Blizzard':\r\n case 'HeavySnow':\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n case 'Thunderstorm':\r\n case 'Patchy light rain with thunder':\r\n case 'Moderate or heavy rain with thunder':\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n case 'Drizzle':\r\n case 'Light drizzle':\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n case 'Fog':\r\n case 'Mist':\r\n case 'Freezing fog':\r\n case 'Foggy':\r\n case 'Haze':\r\n case 'Smoky':\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n case 'Hail':\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n case 'Sleet':\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n case 'Windy':\r\n case 'Breezy':\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n default:\r\n $(`#${pre}WeatherImg`).empty().append('');\r\n break;\r\n }\r\n\r\n }\r\n weatherWithDarkSky(darkSky) {\r\n const self = this;\r\n self.weatherWidget(darkSky);\r\n }\r\n\r\n weatherWithoutDarkSky(coord, isDashboard?: boolean) {\r\n const self = this;\r\n const kid: any = self;\r\n const latitude = coord.latitude;\r\n const longitude = coord.longitude;\r\n $.ajax({\r\n type: 'POST',\r\n url: '/Home/GetWeather',\r\n dataType: 'json',\r\n data: {\r\n LAT: latitude,\r\n LONG: longitude\r\n },\r\n success: (json) => {\r\n if (json.error) {\r\n console.warn(json.error);\r\n return;\r\n }\r\n self.weatherWidget(json, isDashboard)\r\n if (kid['initTimeLead']) kid.initTimeLead(latitude, longitude);\r\n },\r\n error: (json) => {\r\n if (self.debug) console.error(json)\r\n }\r\n });\r\n }\r\n\r\n // #region === Load CRM Card===\r\n crmCard(leadId, whatData) { // === whatData = Full, Image, (etc.)\r\n const self = this;\r\n self.preloader(true);\r\n\r\n if (!$('#newInfo').length) {\r\n $.post('/Popups/CRMCard', data => { // === load frame\r\n $('body').append(data);\r\n // if (window['User'] && window['User'].RAI) {\r\n // $.get('/GetRaiPhones', (data) => {\r\n // window['RaiPhones'] = data.data;\r\n // crmCardLoadScript(); // === load js for crm\r\n // });\r\n // } else {\r\n crmCardLoadScript();\r\n // }\r\n function crmCardLoadScript() {\r\n const script = document.createElement('script');\r\n script.src = window['crmCard_js'] ?? 'js/crmCard.js';\r\n document.head.append(script);\r\n script.onload = () => {\r\n crmCardHowManyLoad(whatData);\r\n }\r\n\r\n // } else if (leftTop && !leftBottom) {\r\n // $.post('/Popups/CRMCardLeftDialerAndImage', data => {\r\n // $('.crmCard-left').append(data);\r\n // console.log('leftTop');\r\n // });\r\n // }\r\n $('#newInfo').attr('IsHub', window.location.pathname.startsWith('/HubList') ? 'true' : 'false');\r\n }\r\n });\r\n }\r\n else {\r\n crmCardHowManyLoad(whatData);\r\n }\r\n\r\n function crmCardLoadConstData(whatData) {\r\n if (window['listsFixDataFields']) {\r\n //crmCardHowManyLoad(whatData);\r\n } else {\r\n $.post('/UserLeads/GetList', data => {\r\n window['listsFixDataFields'] = self.crmCardConstDataComplete(data);\r\n //crmCardHowManyLoad(whatData);\r\n })\r\n }\r\n }\r\n\r\n function crmCardHowManyLoad(whatData) {\r\n switch (whatData) {\r\n case 'Full':\r\n crmCardLoadConstData(whatData);\r\n crmCardLoadFullData();\r\n break;\r\n case 'Image':\r\n crmCardLoadImageData();\r\n break;\r\n }\r\n }\r\n\r\n function crmCardLoadFullData() {\r\n const countSections = 3;\r\n let count = 0;\r\n $.post('/Popups/CRMCardLeftFull', data => {\r\n $('.crmCard-left').empty().append(data);\r\n console.log('leftCard');\r\n count++;\r\n if (count == countSections) crmCardLoadScripts('Full');\r\n });\r\n\r\n $.post('/Popups/CRMCardCenterFull', data => {\r\n // $.post('/Popups/CRMCardCenterFull', data => {\r\n $('.crmCard-center-section').empty().append(data);\r\n console.log('centerCard');\r\n count++;\r\n if (count == countSections) crmCardLoadScripts('Full');\r\n });\r\n\r\n $.post('/Popups/CRMCardRightFull', data => {\r\n // $.post('/Popups/CRMCardRightFull', data => {\r\n $('.crmCard-right-section').empty().append(data);\r\n console.log('rightCard');\r\n\r\n count++;\r\n if (count == countSections) crmCardLoadScripts('Full');\r\n });\r\n }\r\n\r\n function crmCardLoadImageData() {\r\n $.post('/Popups/CRMCardLeftImage', data => {\r\n $('.crmCard-left').empty().append(data);\r\n console.log('leftImage');\r\n\r\n $.post('/Popups/CRMCardCenterImage', data => {\r\n $('.crmCard-center-section').empty().append(data);\r\n console.log('centerImage');\r\n\r\n $.post('/Popups/CRMCardRightImage', data => {\r\n $('.crmCard-right-section').empty().append(data);\r\n console.log('rightImage');\r\n\r\n crmCardLoadScripts('Image');\r\n\r\n ($('#newInfo') as any).modal('show');\r\n\r\n self.preloader(false);\r\n });\r\n });\r\n });\r\n }\r\n\r\n function crmCardLoadScripts(action) {\r\n switch (action) {\r\n case 'Full':\r\n self.getListOfStatuses(() => {\r\n window['CRM']['GetFullCRM'](leadId);\r\n console.log('fullScript');\r\n })\r\n //window['CRM']['GetFullCRM'](leadId);\r\n break;\r\n case 'Image':\r\n window['CRM']['GetImageCRM'](leadId);\r\n console.log('imageScript');\r\n break;\r\n }\r\n }\r\n }\r\n\r\n crmCardConstDataComplete(data) {\r\n data.Accounting_Expenses = data.Accounting_Expenses.filter(el => el.Code != '');\r\n data.Advertising_Expenses = data.Advertising_Expenses.filter(el => el.Code != '');\r\n data.BusinessInsurance_Expenses = data.BusinessInsurance_Expenses.filter(el => el.Code != '');\r\n data.Employees_Combinedes = data.Employees_Combinedes.filter(el => el.Code != '');\r\n data.Legal_Expenses = data.Legal_Expenses.filter(el => el.Code != '');\r\n data.OfficeEquiptment_Expenses = data.OfficeEquiptment_Expenses.filter(el => el.Code != '');\r\n data.Rent_Expenses = data.Rent_Expenses.filter(el => el.Code != '');\r\n data.Sales_Volume = data.Sales_Volume.filter(el => el.Code != '');\r\n data.Technology_Expenses = data.Technology_Expenses.filter(el => el.Code != '');\r\n data.Telecome_Expenses = data.Telecome_Expenses.filter(el => el.Code != '');\r\n data.Years_In_Businesses = data.Years_In_Businesses.filter(el => el.Code != '');\r\n\r\n data.Home_Value_Code.push({ Code: '0', Description: 'Unknown' }) // === Home Marked Value, Median Home Income\r\n data.Median_Home_Value_Codes.push({ Code: '0', Description: 'Unknown' }) // === Median Home Value\r\n data.Median_HseHld_Income_Code.push({ Code: '0', Description: 'Unknown' }) // === Household Income\r\n data.Length_of_Residence_Code.push({ Code: '0', Description: 'Unknown' }) // === Length of Residence\r\n\r\n return data;\r\n }\r\n // #endregion\r\n\r\n // #region === Modals ===\r\n buyLeadsToDBModalLoad() {\r\n const self = this;\r\n\r\n self.loadModalWithoutLoadScripts('/Popups/BuyLeadsToDBModal', '#buyLeadsToDBModal', () => {\r\n const script = document.createElement('script');\r\n script.src = window['buyLeadsToDBModal_js'] ?? 'js/buyLeadsToDBModal.js';\r\n document.head.append(script);\r\n script.onload = () => {\r\n window['buyLeadsToDBModal']['buyLeadsToDBModal']();\r\n }\r\n //buyLeadsToDBModal(); \r\n })\r\n }\r\n\r\n campaignTypeModalLoad() {\r\n if ($('#campaignTypeModal').length) {\r\n window['campaignTypeModal']['campaignTypeModal']();\r\n } else {\r\n const script = document.createElement('script');\r\n script.src = '/js/campaignTypeModal.js';\r\n document.head.append(script);\r\n\r\n script.onload = () => {\r\n window['campaignTypeModal']['campaignTypeModal']();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * createNewOrderModalLoad(): Function\r\n * @param order\r\n * @param callback\r\n */\r\n createNewOrderModalLoad(order?: any, callback?: any) {\r\n if ($('#createNewOrderModal').length) {\r\n if (order) {\r\n window['createNewOrderModal']['newOrderShow'](order, callback);\r\n }\r\n else window['createNewOrderModal']['newOrderShow'](undefined, callback);\r\n } else {\r\n $.post('/Popups/CreateNewOrderModal', data => {\r\n $('body').append(data);\r\n const script = document.createElement('script');\r\n script.src = '/js/createNewOrderModal.js';\r\n document.head.append(script);\r\n\r\n script.onload = () => {\r\n if (order) {\r\n window['createNewOrderModal']['newOrderShow'](order);\r\n }\r\n else window['createNewOrderModal']['newOrderShow']();\r\n }\r\n });\r\n }\r\n }\r\n\r\n endDraggingModal(idModal) {\r\n setTimeout(() => {\r\n $(idModal).css({ 'top': '0', 'left': '0' });\r\n }, 1000)\r\n }\r\n\r\n loadChangeLeadModal() {\r\n if ($('#changeLeadModal').length) {\r\n window['changeLeadModal']['changeLeadModal']();\r\n } else {\r\n $.post('/Popups/ChangeLeadModal', data => {\r\n $('body').append(data);\r\n const script = document.createElement('script');\r\n script.src = window['changeLeadModal_js'] ?? 'js/changeLeadModal.js';\r\n document.head.append(script);\r\n\r\n script.onload = () => {\r\n window['changeLeadModal']['changeLeadModal']();\r\n }\r\n });\r\n }\r\n }\r\n\r\n loadInvitePeopleReferralModal(emailValue?) {\r\n if ($('#invitePeopleReferralModal').length) {\r\n window['invitePeopleReferralModal']['invitePeopleReferralModal'](emailValue);\r\n }\r\n else {\r\n const script = document.createElement('script');\r\n script.src = 'js/invitePeopleReferralModal.js';\r\n document.head.append(script);\r\n\r\n script.onload = () => {\r\n window['invitePeopleReferralModal']['invitePeopleReferralModal'](emailValue);\r\n }\r\n }\r\n }\r\n\r\n loadMeetingInvitationModal(parent?) {\r\n const self = this;\r\n if ($('#meetingInvitationModal').length) {\r\n window['meetingInvitationModal']['meetingInvitationModalBase'](parent);\r\n //self.showMeetingInvitationModal(callback);\r\n } else {\r\n $.post('/Popups/MeetingInvitationModal', data => {\r\n $('body').append(data);\r\n const script = document.createElement('script');\r\n script.src = window['meetingInvitationModal_js'] ?? '/js/meetingInvitationModal.js';\r\n document.head.append(script);\r\n\r\n script.onload = () => {\r\n window['meetingInvitationModal']['meetingInvitationModalBase'](parent);\r\n }\r\n //self.showMeetingInvitationModal(callback);\r\n });\r\n }\r\n }\r\n\r\n //showMeetingInvitationModal(callback?) {\r\n // $('#meetingInvitationModal').off('shown.bs.modal').on('shown.bs.modal', () => {\r\n // loadDxDateBox();\r\n // showZoomFields();\r\n\r\n // if ($('#titleMeeting').val() == '') { // ?\r\n // meetingsBtnsValidation(true);\r\n // }\r\n\r\n // $('#titleMeeting').on('input', () => {\r\n // if ($('#titleMeeting').val() != '') {\r\n // $('#titleMeeting').removeClass('is-invalid');\r\n // if ($('#mim__includeZoom').is(':checked')) {\r\n // $('.mim__zoom-id-btn').prop('disabled') ? meetingsBtnsValidation(true) : meetingsBtnsValidation(false);\r\n // } else $('#mim__btn-attach').prop('disabled', false);\r\n // } else {\r\n // $('#titleMeeting').addClass('is-invalid');\r\n // meetingsBtnsValidation(true);\r\n // }\r\n // });\r\n\r\n // $('#meetingTo').val(($('.crm-email') as any).dxDropDownBox('instance').option('displayValue'));\r\n // // if ($('#sendEmailModal').is(':hidden')) {\r\n // // if ($('#meetingTo').val()) {\r\n // // meetingsBtnsValidation(false);\r\n // // } else {\r\n // // meetingsBtnsValidation(true);\r\n // // }\r\n // // }\r\n\r\n // $('#mim__includeZoom').off('click').on('click', () => {\r\n // showZoomFields();\r\n // });\r\n\r\n // $('#mim__zoom-id').off('input').on('input', () => {\r\n // const value = $('#mim__zoom-id').val(($('#mim__zoom-id') as any).val().replace(/\\D/g, ''));\r\n // changeZoomId($('#mim__zoom-id').val());\r\n // });\r\n\r\n // $('#mim__zoom-id').on('focus', () => {\r\n // $('#mim__zoom-id').removeClass('is-invalid');\r\n // });\r\n\r\n // $('#mim__zoom-id').on('blur', () => {\r\n // if (($('#mim__zoom-id') as any).val().length < 10 || ($('#mim__zoom-id') as any).val().length > 11) {\r\n // changeZoomId($('#mim__zoom-id').val());\r\n // } if ($('#mim__zoom-id').val() == '') {\r\n // ifZoomIdNull();\r\n // }\r\n // });\r\n // });\r\n\r\n // $('#meetingInvitationModal').off('hidden.bs.modal').on('hidden.bs.modal', () => {\r\n // cleanMeetingInvitationModal()\r\n // }).off('show.bs.modal').on('show.bs.modal', (e) => {\r\n // $.ajax(\r\n // {\r\n // url: '/ZoomId',\r\n // method: 'GET',\r\n // async: false,\r\n // success: (data) => {\r\n\r\n // if (data && data.length > 5)\r\n // $('#mim__zoom-id').val(data);\r\n // else\r\n // $('#mim__zoom-id').val('xxxxxxxxxx');\r\n // changeZoomId($('#mim__zoom-id').val());\r\n // },\r\n // error: () => {\r\n // $('#mim__zoom-id').val('xxxxxxxxxx');\r\n // changeZoomId($('#mim__zoom-id').val());\r\n // }\r\n // });\r\n // });\r\n\r\n // if (callback) callback();\r\n // ($('#meetingInvitationModal') as any).modal('show');\r\n\r\n // function changeZoomId(value) {\r\n // $('.mim__zoom-id-text').text(value);\r\n // $('.mim__zoom-link').text(`https://us02web.zoom.us/j/${value}`);\r\n // $('.mim__zoom-mobile1').attr('href', `tel: +13126266799,,${value}#`).text(`+13126266799,,${value}# US (Chicago)`);\r\n // $('.mim__zoom-mobile2').attr('href', `tel: +13017158592,,${value}#`).text(`+13017158592,,${value}# US (Washington DC)`);\r\n // if (value == '') {\r\n // ifZoomIdNull();\r\n // }\r\n // if (($('#mim__zoom-id') as any).val().length < 10 || ($('#mim__zoom-id') as any).val().length > 11) {\r\n // $('.mim__zoom-id-btn').prop('disabled', true);\r\n // meetingsBtnsValidation(true);\r\n // } else {\r\n // $('.mim__zoom-id-btn').prop('disabled', false);\r\n // meetingsBtnsValidation(false);\r\n // }\r\n // }\r\n\r\n // function cleanMeetingInvitationModal() {\r\n // if ($('.sendEmail-editMeeting-btn').is(':hidden')) {\r\n // $('#titleMeeting').val('');\r\n\r\n // $('#mim__location').val('');\r\n // $('#mim__note').val('');\r\n // }\r\n\r\n // $('#titleMeeting').removeClass('is-invalid');\r\n\r\n // $('#allDay').prop('checked', false);\r\n // selectAllDay();\r\n\r\n // ifZoomIdNull();\r\n\r\n // $('#mim__includeZoom').prop('checked', false);\r\n // showZoomFields();\r\n\r\n // // $('#mim__dateStart') as any).dxDateBox('dispose');\r\n // // ($('#mim__dateEnd') as any).dxDateBox('dispose');\r\n // // ($('#mim__dateStart-day') as any).dxDateBox('dispose');\r\n // // ($('#mim__dateEnd-day') as any).dxDateBox('dispose');\r\n\r\n // $('#mim__btn-attach').show();\r\n // $('#mim__btn-save').hide();\r\n // }\r\n\r\n // function mimTimeEnd() {\r\n // //let mim__dateStart = Date.parse($('#mim__dateStart').dxDateBox('instance').option('value')); // fix date\r\n // const mim__dateStart = ($('#mim__dateStart') as any).dxDateBox('instance').option('value');\r\n\r\n // ($('#mim__dateEnd') as any).dxDateBox('instance').option('min', mim__dateStart);\r\n // ($('#mim__dateEnd') as any).dxDateBox('instance').option('value', mim__dateStart);\r\n // }\r\n\r\n // function mimEndTimeDay() {\r\n // const mim__dateStart = ($('#mim__dateStart') as any).dxDateBox('instance').option('value');\r\n\r\n // ($('#mim__dateEnd-day') as any).dxDateBox('instance').option('min', mim__dateStart);\r\n // ($('#mim__dateEnd-day') as any).dxDateBox('instance').option('value', mim__dateStart);\r\n // }\r\n\r\n // function ifZoomIdNull() {\r\n // if (($('#mim__zoom-id') as any).val().length < 5) {\r\n // $('.mim__zoom-id-text').text('xxx xxx xxxxx');\r\n // $('.mim__zoom-link').text('https://us02web.zoom.us/j/xxxxxxxxxx');\r\n // $('.mim__zoom-mobile1').attr('href', `tel: +13126266799,,XXXXXXXXXX#`).text(`+13126266799,,XXXXXXXXXX# US (Chicago)`);\r\n // $('.mim__zoom-mobile2').attr('href', `tel: +13017158592,,XXXXXXXXXX#`).text(`+13017158592,,XXXXXXXXXX# US (Washington DC)`);\r\n // $('#mim__zoom-id').removeClass('is-invalid');\r\n // $('.mim__zoom-id-btn').prop('disabled', true);\r\n // meetingsBtnsValidation(true);\r\n // }\r\n // }\r\n\r\n // // => MeetingInvitationModal.ts\r\n // function loadDxDateBox() {\r\n // const date = new Date();\r\n // ($('#mim__dateStart') as any).dxDateBox({\r\n // min: date,\r\n // onValueChanged: (e) => { mimTimeEnd() },\r\n // type: 'datetime',\r\n // value: date,\r\n // width: '100%',\r\n // });\r\n\r\n // ($('#mim__dateStart-day') as any).dxDateBox({\r\n // min: date,\r\n // onValueChanged: (e) => { mimEndTimeDay() },\r\n // pickerType: 'rollers',\r\n // value: date,\r\n // // visible: false,\r\n // width: '100%',\r\n // });\r\n\r\n // ($('#mim__dateEnd') as any).dxDateBox({\r\n // min: date,\r\n // type: 'datetime',\r\n // value: date,\r\n // width: '100%'\r\n // });\r\n // ($('#mim__dateEnd-day') as any).dxDateBox({\r\n // min: date,\r\n // pickerType: 'rollers',\r\n // value: date,\r\n // // visible: false,\r\n // width: '100%'\r\n // });\r\n // }\r\n\r\n // function meetingsBtnsValidation(bool) {\r\n // $('#mim__btn-attach').prop('disabled', bool);\r\n // $('#mim__btn-save').prop('disabled', bool);\r\n // }\r\n\r\n // function selectAllDay() {\r\n // if ($('#allDay').is(':checked')) {\r\n // $('div[data-start_time_day], div[data-end_time_day]').show();\r\n // $('div[data-start_time_datetime], div[data-end_time_datetime] ').hide();\r\n\r\n // // let mim__dateStart = new Date(Date.parse(($('#mim__dateStart') as any).dxDateBox('instance').option('value')));\r\n // const mim__dateStart = ($('#mim__dateStart') as any).dxDateBox('instance').option('value');\r\n // ($('#mim__dateStart-day') as any).dxDateBox('instance').option('value', mim__dateStart);\r\n // // let mim__dateEnd = new Date(Date.parse(($('#mim__dateEnd') as any).dxDateBox('instance').option('value')));\r\n // const mim__dateEnd = ($('#mim__dateEnd') as any).dxDateBox('instance').option('value');\r\n // ($('#mim__dateEnd-day') as any).dxDateBox('instance').option('value', mim__dateEnd);\r\n // } else {\r\n // $('div[data-start_time_day], div[data-end_time_day] ').hide();\r\n // $('div[data-start_time_datetime], div[data-end_time_datetime] ').show();\r\n\r\n // // let mim__dateStart-day = new Date(Date.parse(($('#mim__dateStart-day') as any).dxDateBox('instance').option('value')));\r\n // const dateStartDay = ($('#mim__dateStart-day') as any).dxDateBox('instance').option('value');\r\n // ($('#mim__dateStart') as any).dxDateBox('instance').option('value', dateStartDay);\r\n // // let mim__dateEnd-day = new Date(Date.parse(($('#mim__dateEnd-day') as any).dxDateBox('instance').option('value')));\r\n // const dateEndDay = ($('#mim__dateEnd-day') as any).dxDateBox('instance').option('value');\r\n // ($('#mim__dateEnd') as any).dxDateBox('instance').option('value', dateEndDay);\r\n // }\r\n // }\r\n\r\n // function showZoomFields() { // => meetinInvitaitonModal.ts (TODO)\r\n // if ($('#mim__includeZoom').prop('checked')) {\r\n // $('#meetingInvitationModal .modal-dialog').addClass('modal-lg');\r\n // $('#meetingInvitationModal .mim__simple-section').removeClass('col').addClass('col-6');\r\n // $('#meetingInvitationModal .mim__zoom').show();\r\n // ifZoomIdNull();\r\n // } else {\r\n // $('#meetingInvitationModal .modal-dialog').removeClass('modal-lg');\r\n // $('#meetingInvitationModal .mim__simple-section').removeClass('col-6').addClass('col');\r\n // $('#meetingInvitationModal .mim__zoom').hide();\r\n // $('#titleMeeting').val() == '' ? meetingsBtnsValidation(true) : meetingsBtnsValidation(false);\r\n // }\r\n // }\r\n //}\r\n\r\n loadModalWithoutLoadScripts(url, modalId, callback?) {\r\n if ($(modalId).length) {\r\n if (callback) callback();\r\n } else {\r\n $('.root-preloader').show();\r\n $.post(url, data => {\r\n $('body').append(data);\r\n if (callback) callback();\r\n });\r\n }\r\n }\r\n\r\n loadMoveLeadsModal(gridId, callback?) {\r\n const self = this;\r\n self.preloader(true);\r\n if ($('#moveLeadsModal').length) {\r\n window['moveLeadsModal']['moveLeadsModalBase'](gridId, callback);\r\n } else {\r\n $.post('/Popups/MoveLeadsModal', data => {\r\n $('body').append(data);\r\n const script = document.createElement('script');\r\n script.src = window['moveLeadsModal_js'] ?? '/js/moveLeadsModal.js';\r\n document.head.append(script);\r\n\r\n script.onload = () => {\r\n window['moveLeadsModal']['moveLeadsModalBase'](gridId, callback);\r\n }\r\n });\r\n }\r\n }\r\n\r\n loadPurchaseModal(email, amount, packid = null, plan = false, isFromShoppingCard: Boolean = false) {\r\n const purchaseModalData = {\r\n email, amount, packid, plan, isFromShoppingCard\r\n }\r\n\r\n $('.root-preloader').show();\r\n if ($('#campaignTypeModal').length) {\r\n window['purchaseModal']['purchaseModal'](purchaseModalData);\r\n } else {\r\n const script = document.createElement('script');\r\n script.src = '/js/purchaseModal.js';\r\n document.head.append(script);\r\n\r\n script.onload = () => {\r\n window['purchaseModal']['purchaseModal'](purchaseModalData);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * onePropositionModalLoad(): Function\r\n * @param obj\r\n * obj = {\r\n * callback: function,\r\n * callbackNo: function,\r\n * classYesBtn: '...', // string\r\n * hideCancelIcon: true, false\r\n * position: '', 'top', // string // if top - remove .modal-dialog-centered\r\n * size: '', 'sm', // string // if sm - add .modal-sm\r\n * textModal: '...', // string\r\n * textNoBtn: '...' // string\r\n * textYesBtn: '...', // string\r\n * titleModal: '...', // string\r\n * zIndex: number\r\n * }\r\n */\r\n onePropositionModalLoad(obj) {\r\n const self = this;\r\n if ($('#onePropositionModal').length) {\r\n self.onePropositionModalShow(obj);\r\n } else {\r\n self.preloader(true);\r\n $.post('/Popups/GlobalOnePropositionModal', data => {\r\n $('body').append(data);\r\n self.onePropositionModalShow(obj);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * onePropositionModalShow(): Function\r\n * @param obj\r\n * obj = {\r\n * callback: function,\r\n * callbackNo: function,\r\n * classYesBtn: '...', // string\r\n * hideCancelIcon: true, false\r\n * position: '', 'top', // string // if top - remove .modal-dialog-centered\r\n * size: '', 'sm', // string // if sm - add .modal-sm\r\n * textModal: '...', // string\r\n * textNoBtn: '...' // string\r\n * textYesBtn: '...', // string\r\n * titleModal: '...', // string\r\n * zIndex: number\r\n * }\r\n */\r\n onePropositionModalShow(obj) {\r\n const self = this;\r\n const modalId = '#onePropositionModal';\r\n const yesBtn = $(`${modalId} .btn-primary-custom`);\r\n const noBtn = $(`${modalId} .btn-secondary-custom`);\r\n\r\n $(`${modalId}Label`).text(obj.titleModal ?? ''); // === Set modal title ===\r\n $(`${modalId} .oneProposition`).html(obj.textModal); // === Add text on modal ===\r\n obj.hideCancelIcon ? $(`${modalId} .btn-close`).hide() : $(`${modalId} .btn-close`).show(); // === Show or hide close icon ===\r\n obj.textYesBtn ? yesBtn.show().text(obj.textYesBtn) : yesBtn.hide(); // === Show or hide Yes-btn ===\r\n obj.textNoBtn ? noBtn.show().text(obj.textNoBtn) : noBtn.hide(); // === Show or hide No-btn ===\r\n if (obj.classYesBtn != undefined) {\r\n $(`${modalId} .btn-primary-custom`).addClass(`${obj.classYesBtn}-btn`); // === Set unique class on Yes-btn ===\r\n }\r\n obj.size === 'sm' ? $(`${modalId} .modal-dialog`).addClass('modal-sm') : $(`${modalId} .modal-dialog`).removeClass('modal-sm'); // === Set size modal ===\r\n obj.position === 'top' ? $(`${modalId} .modal-dialog`).removeClass('modal-dialog-centered') : $(`${modalId} .modal-dialog`).addClass('modal-dialog-centered'); // === Set position modal ===\r\n\r\n $(modalId).css('z-index', !!obj.zIndex ? obj.zIndex : 1056);\r\n\r\n ($(`${modalId}`) as any).modal('show');\r\n self.preloader(false);\r\n\r\n yesBtn.off('click').on('click', obj.callback ? obj.callback : () => { return });\r\n noBtn.off('click').on('click', obj.callbackNo ? obj.callbackNo : () => { return });\r\n\r\n $(modalId).on('keypress', e => {\r\n if (e.keyCode == 13)\r\n $(yesBtn).trigger('click');\r\n })\r\n $(`${modalId}`).off('hidden.bs.modal').on('hidden.bs.modal', () => {\r\n $(yesBtn).removeClass(`${obj.classYesBtn}-btn`);\r\n $(modalId).css('z-index', 1056);\r\n })\r\n }\r\n\r\n /**\r\n * promptModalLoad(): Function\r\n * @param title\r\n * @param text\r\n * @param type\r\n * @param yesBtnClass\r\n * @param yesBtnText\r\n * @param noBtnText\r\n * @param callback\r\n * @param callbackNo\r\n */\r\n promptModalLoad(title: string, text: string, type: string, yesBtnClass: string, yesBtnText: string, noBtnText: string, callback?, callbackNo?) {\r\n let self = this;\r\n self.preloader(true);\r\n if ($('#promptModal').length) {\r\n self.promptModalShow(title, text, type, yesBtnClass, yesBtnText, noBtnText, callback, callbackNo);\r\n } else {\r\n $.post('/Popups/PromptModal', data => {\r\n $('body').append(data);\r\n self.promptModalShow(title, text, type, yesBtnClass, yesBtnText, noBtnText, callback, callbackNo);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * promptModalShow(): Function\r\n * @param title\r\n * @param text\r\n * @param type\r\n * @param yesBtnClass\r\n * @param yesBtnText\r\n * @param noBtnText\r\n * @param callback\r\n * @param callbackNo\r\n */\r\n promptModalShow(title, text, type, yesBtnClass, yesBtnText, noBtnText, callback?, callbackNo?) {\r\n const self = this;\r\n $('#promptModalLabel').text(title);\r\n $('#prompt-label').empty().html(text);\r\n $('#prompt-input').attr('type', type).val('');\r\n $('.prompt-yesBtn').addClass(`${yesBtnClass}-btn`);\r\n $('.prompt-yesBtn').text(yesBtnText);\r\n $('.prompt-noBtn').text(noBtnText);\r\n\r\n ($('#promptModal') as any).modal('show');\r\n self.preloader(false);\r\n setTimeout(() => { $('#prompt-input').focus(); }, 100);\r\n $('.prompt-yesBtn').off('click').on('click', callback ? callback : () => { return });\r\n $('.prompt-noBtn').off('click').on('click', callbackNo ? callbackNo : () => { return });\r\n\r\n $('#promptModal').off('hidden.bs.modal').on('hidden.bs.modal', () => {\r\n $('.prompt-yesBtn').removeClass(`${yesBtnClass}-btn`);\r\n })\r\n }\r\n\r\n sendEmailModalLoad(callback?) {\r\n if ($('#sendEmailModal').length) {\r\n window['sendEmailModal']['sendEmailModal'](callback);\r\n } else {\r\n $.post('/Popups/SendEmailModal', data => {\r\n $('body').append(data);\r\n const script = document.createElement('script');\r\n script.src = window['sendEmailModal_js'] ?? 'js/sendEmailModal.js';\r\n document.head.append(script);\r\n\r\n script.onload = () => {\r\n window['sendEmailModal']['sendEmailModal'](callback);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * setCallReminderModalLoad(action): Function\r\n * \r\n * @param action = Add, Edit, Toast\r\n */\r\n setCallReminderModalLoad(action?) {\r\n if ($('#setCallReminderModal').length) {\r\n //self.setCallReminderModalShow(callback);\r\n window['setCallReminderModal']['setCallReminder'](action);\r\n } else {\r\n $.post('/Popups/SetCallReminderModal', data => {\r\n $('body').append(data);\r\n //self.setCallReminderModalShow(callback);\r\n const script = document.createElement('script');\r\n script.src = window['setCallReminderModal_js'] ?? 'js/setCallReminderModal.js';\r\n document.head.append(script);\r\n\r\n script.onload = () => {\r\n window['setCallReminderModal']['setCallReminder'](action);\r\n }\r\n });\r\n }\r\n }\r\n\r\n setCallReminderModalShow(callback?) {\r\n const self = this;\r\n self.reminderModal();\r\n\r\n if (callback) callback();\r\n }\r\n // #endregion\r\n\r\n // #region === Move leads ===\r\n getListOfTab(UserId, value?) {\r\n const self = this;\r\n const leadsToDataSource = window['DevExpress'].data.AspNet.createStore({\r\n key: 'Id',\r\n loadMethod: 'POST',\r\n loadParams: { Id: UserId },\r\n loadUrl: '/MultipleNodeSelection/GetTabsByUserId',\r\n });\r\n try {\r\n ($('.devExMoveTabList') as any).dxDropDownBox('dispose');\r\n }\r\n catch (ex) {\r\n console.warn(ex);\r\n };\r\n ($('.devExMoveTabList') as any).dxDropDownBox({\r\n dataSource: UserId ? leadsToDataSource : [],\r\n contentTemplate: (e) => {\r\n const value = e.component.option('value'),\r\n $dataGrid = $('
    ').dxDataGrid({\r\n dataSource: e.component.getDataSource(),\r\n columns: [{\r\n dataField: 'Name',\r\n sortOrder: 'asc'\r\n }],\r\n height: 200,\r\n hoverStateEnabled: true,\r\n keyExpr: 'Id',\r\n onEditorPreparing: (e) => {\r\n self.devExSearchFilterDelay(e);\r\n self.devExSearchFilterMin(e);\r\n },\r\n onSelectionChanged: (select) => {\r\n $('.btnMoveLeads').prop('disabled', false)\r\n const keys = select.selectedRowKeys,\r\n hasSelection = keys.length;\r\n\r\n e.component.option('value', hasSelection ? keys[0] : null);\r\n ($('.devExMoveTabList') as any).dxDropDownBox('instance').close();\r\n\r\n try {\r\n $('.devExMoveStatusList').dxSelectBox('instance').option('disabled', false);\r\n } catch (ex) { }\r\n\r\n return;\r\n },\r\n scrolling: { mode: 'virtual' },\r\n searchPanel: {\r\n visible: true\r\n },\r\n selectedRowKeys: value,\r\n selection: {\r\n allowSelectAll: true,\r\n deferred: false,\r\n mode: 'single',\r\n selectAllMode: 'allPages',\r\n showCheckBoxesMode: 'onClick'\r\n },\r\n showBorders: true,\r\n });\r\n\r\n this.dataGrid = $dataGrid.dxDataGrid('instance');\r\n\r\n e.component.on('valueChanged', (args) => {\r\n const value = args.value;\r\n this.dataGrid.selectRows(value, false);\r\n });\r\n\r\n const $div = $('
    ');\r\n $div.append($dataGrid);\r\n const buttons = $('
    ');\r\n const buttonAdd = $('');\r\n const buttonCancel = $('')\r\n buttonAdd.on('click', (e) => {\r\n $('.newMoveLeadsTabList').show();\r\n ($('.devExMoveTabList') as any).dxDropDownBox('instance').close();\r\n ($('.newMoveLeadsTabList .newMoveLeadsTabList-input') as any).focus();\r\n $('.newMoveLeadsTabList-input').val('');\r\n $('#newMoveLeadsTabListBtn').prop('disabled', true);\r\n });\r\n buttonCancel.on('click', (e) => ($('.devExMoveTabList') as any).dxDropDownBox('instance').close());\r\n buttons.append(buttonAdd).append(buttonCancel);\r\n $div.append(buttons);\r\n\r\n return $div;\r\n },\r\n // disabled: value ? false: true,\r\n displayExpr: (item) => {\r\n return item && item.Name;\r\n },\r\n onOpened: () => {\r\n $('.newMoveLeadsTabList-input').val('');\r\n $('.newMoveLeadsTabList').hide();\r\n },\r\n onSelectionChanged: () => {\r\n if ($('#moveApprovalMessage').is(':visible')) {\r\n !$('.devExMoveStatusList').dxSelectBox('instance').option('disabled') && !($('.devExMoveTabList') as any).dxDropDownBox('instance').option('disabled') && window['lengthActiveAmountStatuses'] > 0 ?\r\n $('#moveApprovalMessage .btn-move').prop('disabled', false) : $('#moveApprovalMessage .btn-move').prop('disabled', true);\r\n }\r\n },\r\n placeholder: 'Tab',\r\n showClearButton: false,\r\n value: value,\r\n valueExpr: 'Id',\r\n width: '100%',\r\n // })\r\n // .dxValidator({\r\n // validationGroup: 'tabNameReq',\r\n // validationRules: [{\r\n // message: 'Tab is required',\r\n // type: 'required',\r\n // }]\r\n });\r\n if (value) $('.devExMoveStatusList').dxSelectBox('instance').option('disabled', false);\r\n }\r\n\r\n //addNewTabAction(userId: string, name: string) {\r\n // const self = this;\r\n // const userTab = {\r\n // UserId: userId,\r\n // Tab: name\r\n // };\r\n // $('.newMoveLeadsTabList-input').val('');\r\n // $('.newMoveLeadsTabList').hide();\r\n // $.ajax({\r\n // type: 'POST',\r\n // url: '/MultipleNodeSelection/AddNewTab',\r\n // data: userTab,\r\n // dataType: 'json',\r\n // crossDomain: true,\r\n // success: function (id) {\r\n // self.getListOfTab(userId, id);\r\n // },\r\n // error: function () {\r\n // alert('failed to Add New Tab');\r\n // }\r\n // });\r\n //}\r\n // #endregion\r\n\r\n // #region === Popover wizard ===\r\n\r\n popoverWizardContent() {\r\n const wizardContent = {};\r\n\r\n switch (window['wizardStep']) {\r\n case 1:\r\n $('.navbar-brand').addClass('wizard');\r\n wizardContent['Header'] = 'header';\r\n wizardContent['Text'] = 'Logo';\r\n break;\r\n case 2:\r\n $('.leadsCount').addClass('wizard');\r\n wizardContent['Header'] = 'header2';\r\n wizardContent['Text'] = 'Leads Credits';\r\n break;\r\n case 3:\r\n $('.dialerMinutes').addClass('wizard');\r\n wizardContent['Header'] = 'header3';\r\n wizardContent['Text'] = 'Dialer Minutes';\r\n break;\r\n }\r\n if (window['wizardStep'] == 4) $('.hide-content').hide();\r\n return wizardContent;\r\n }\r\n\r\n popoverWizardRemove() {\r\n $('.wizard').removeAttr('data-bs-toggle').removeAttr('data-title').removeAttr('data-content').removeAttr('data-html');\r\n ($('.wizard') as any).popover('hide');\r\n ($('.wizard') as any).popover('disable');\r\n $('.wizard').removeClass('wizard');\r\n }\r\n\r\n popoverWizardShow() {\r\n const self = this;\r\n const wizardContent = self.popoverWizardContent();\r\n const cancelBtn = '
    Close
    '\r\n const nextBtn = '
    Next
    ';\r\n const popoverContent = `

    ${wizardContent['Text']}

    ${cancelBtn}${nextBtn}
    `;\r\n $('.wizard').attr('data-bs-toggle', 'popover');\r\n $('.wizard').attr('data-html', 'true');\r\n $('.wizard').attr('data-title', wizardContent['Header']);\r\n $('.wizard').attr('data-content', popoverContent);\r\n ($('.wizard') as any).popover('enable');\r\n ($('.wizard') as any).popover('show');\r\n\r\n $('.wizard-next').off('click').on('click', () => {\r\n self.popoverWizardRemove();\r\n window['wizardStep']++;\r\n self.popoverWizardShow();\r\n })\r\n $('.wizard-close').off('click').on('click', () => {\r\n self.popoverWizardRemove();\r\n $('.hide-content').hide();\r\n })\r\n }\r\n // #endregion\r\n\r\n // #region === Reminder ===\r\n bellRing(reminder: any, isRemind = false) {\r\n const self = this;\r\n self.showReminderToast(reminder, isRemind);\r\n\r\n const ring = $('.mh-reminder-icon');\r\n const audio: any = $('.reminderAudio')[0];\r\n audio.play();\r\n\r\n if (!isRemind) {\r\n // ring.removeClass('animation');\r\n ring.addClass('animation');\r\n // ring.css('animation', 'none');\r\n // ring.css('animation', 'ring .2s linear 90 alternate');\r\n ring.css('color', '#c71a00');\r\n\r\n if ($('.reminder').hasClass('show')) self.refreshReminderRows();\r\n\r\n ring.on('click', () => {\r\n audio.pause();\r\n audio.currentTime = 0;\r\n ring.removeClass('animation');\r\n // ring.css('animation', 'none');\r\n ring.css('color', '#fff');\r\n });\r\n }\r\n setTimeout(() => { audio.pause(); audio.currentTime = 0; }, 5000);\r\n setTimeout(() => { ring.removeClass('animation'); }, 15000);\r\n }\r\n\r\n checkReminders(t) {\r\n //checkReminders() {\r\n const self = this;\r\n if (window['RemindersList'] !== undefined) {\r\n const minutes = 300000;\r\n const now: any = new Date();\r\n const reminderList = window['RemindersList'];\r\n if (typeof reminderList.forEach == 'function')\r\n window['RemindersList'].forEach((reminder: any) => {\r\n if (!reminder.Set) {\r\n //reminder.Date = new Date(reminder.Date);\r\n //reminder.Date = new Date(defFormat(reminder.Date, '%m/%d/%y %H:%M:%S UTC'))\r\n reminder.Date = new Date(reminder.Date);\r\n\r\n reminder.Set = true;\r\n }\r\n if (!reminder.IsProcessing && window['RemindersDone'][reminder.Id] != 'Done') { // if isn't reminder last\r\n let dt = reminder.Date - now;\r\n dt /= minutes;\r\n\r\n if (dt > -.3) {\r\n if (reminder.Remind != 0 && dt < reminder.Remind / 5 + 0.1 && dt > reminder.Remind / 5 - 0.3 && window['RemindersDone'][reminder.Id] != 'DoneRemind') {\r\n window['RemindersDone'][reminder.Id] = 'DoneRemind';\r\n t.bellRing(reminder, true);\r\n }\r\n if (dt < .1 && dt > -.3) {\r\n window['RemindersDone'][reminder.Id] = 'Done';\r\n t.bellRing(reminder);\r\n t.remindersCountRequests();\r\n }\r\n }\r\n else {\r\n window['RemindersDone'][reminder.Id] = 'Done';\r\n }\r\n }\r\n });\r\n //window['RemindersList'].forEach((reminder: any) => {\r\n // const now: any = new Date().getTime();\r\n // reminder.Date = new Date(reminder.Date).getTime();\r\n // let dt = reminder.Date - now;\r\n // if (dt > 0) {\r\n // setTimeout(() => {\r\n // self.bellRing(reminder);\r\n // self.remindersCountRequests();\r\n // }, dt)\r\n // }\r\n //})\r\n }\r\n\r\n // console.log('ran@: ' + new Date());\r\n }\r\n\r\n //convertDateInType(dateVal, type) {\r\n // const self = this;\r\n // const newDateVal = new Date(dateVal);\r\n // const d = newDateVal.getDate();\r\n // let m = newDateVal.getMonth();\r\n // m += 1;\r\n // const y = newDateVal.getFullYear();\r\n\r\n // const monthNames = ['January', 'February', 'March', 'April', 'May', 'June',\r\n // 'July', 'August', 'September', 'October', 'November', 'December'\r\n // ];\r\n // const weekday = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\r\n\r\n // switch (type) {\r\n // case 'Day':\r\n // // return {\r\n // // up: (monthNames[m - 1] + ' ' + d + ', ' + y),\r\n // // down: (weekday[newDateVal.getDay()])\r\n // // };\r\n // return weekday[newDateVal.getDay()];\r\n // case 'Week':\r\n // Date.prototype['getWeek'] = function () { return $.datepicker.iso8601Week(this); }\r\n\r\n // let first = dateVal.getDate() - dateVal.getDay() + 1;\r\n // let last = first + 6;\r\n\r\n // let firstday = new Date(dateVal.setDate(first));\r\n // let lastday = new Date(dateVal.setDate(last));\r\n\r\n // // return {\r\n // // up: ('Week: ' + weekNumber + ' ' + monthNames[firstday.getMonth()] + ', ' + y),\r\n // // down: (monthNames[firstday.getMonth()] + ' ' + firstday.getDate() + ', ' + firstday.getFullYear() + ' - ' + monthNames[lastday.getMonth()] + ' ' + lastday.getDate() + ', ' + lastday.getFullYear())\r\n // // };\r\n // return `${monthNames[firstday.getMonth()]} ${firstday.getDate()}, ${firstday.getFullYear()} - ${monthNames[lastday.getMonth()]} ${lastday.getDate()}, ${lastday.getFullYear()}`;\r\n // case 'Month':\r\n // let firstDayOnMonth = new Date(dateVal.getFullYear(), dateVal.getMonth(), 1);\r\n // let lastDayOnMonth = new Date(dateVal.getFullYear(), dateVal.getMonth() + 1, 0);\r\n // // return {\r\n // // up: (monthNames[m - 1] + ', ' + y),\r\n // // down: (monthNames[firstDayOnMonth.getMonth()] + ' ' + firstDayOnMonth.getDate() + ', ' + firstDayOnMonth.getFullYear() + ' - ' + monthNames[lastDayOnMonth.getMonth()] + ' ' + lastDayOnMonth.getDate() + ', ' + lastDayOnMonth.getFullYear())\r\n // // };\r\n // return `${monthNames[firstDayOnMonth.getMonth()]} ${firstDayOnMonth.getDate()}, ${firstDayOnMonth.getFullYear()} - ${monthNames[lastDayOnMonth.getMonth()]} ${lastDayOnMonth.getDate()}, ${lastDayOnMonth.getFullYear()}`;\r\n // case 'Year': return (y);\r\n // case 'RowDate': return `${monthNames[m - 1]} ${d}, ${y} ${self.formatAMPM(newDateVal)}`;\r\n // case 'FromTo':\r\n // let from = new Date(Date.parse(($('.devExReminderCalendarFrom') as any).dxDateBox('instance').option('value')));\r\n // let to = new Date(Date.parse(($('.devExReminderCalendarTo') as any).dxDateBox('instance').option('value')));\r\n\r\n // // return {\r\n // // up: ('Search From - To'),\r\n // // down: (monthNames[from.getMonth()] + ' ' + from.getDate() + ', ' + from.getFullYear() + ' - ' + monthNames[to.getMonth()] + ' ' + to.getDate() + ', ' + to.getFullYear())\r\n // // };\r\n // return `${monthNames[from.getMonth()]} ${from.getDate()}, ${from.getFullYear()} - ${monthNames[to.getMonth()]} ${to.getDate()}, ${to.getFullYear()}`;\r\n // }\r\n //}\r\n\r\n getListOfReminders(type, startDate, endDate?) { // +\r\n const self = this;\r\n console.log('getListOfReminders\\ntype: ', type, '\\nstartDate: ', startDate, '\\nendDate: ', endDate);\r\n\r\n if (window['FirstRequestIgnore']) { // ??\r\n return null;\r\n }\r\n\r\n window['lastSearchedNotificationDate'] = startDate;\r\n $.get('/Reminder/GetReminders', {\r\n important: ($('.reminder-important') as any).dxCheckBox('instance').option('value') ? 'Yes' : 'Any',\r\n processing: ($('.reminder-completed') as any).dxCheckBox('instance').option('value') ? 'Yes' : 'No',\r\n startDate: startDate,\r\n endDate: endDate,\r\n type: type,\r\n }, (data) => {\r\n let result = '';\r\n if (data.Reminders.length == 0) {\r\n $('.reminder-content-header-bottom').css('visibility', 'hidden');\r\n\r\n result = `
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    No notifications for selected period.

    \r\n
    \r\n
    \r\n
    `;\r\n } else {\r\n $('.reminder-content-header-bottom').css('visibility', 'visible');\r\n\r\n $.each(data.Reminders, (i, v) => {\r\n const isComplited = v.IsProcessing ? '' : '';\r\n const isImportant = v.IsImportant ? '' : '';\r\n const type = v.IsProcessing ? 'newMsg-completed' : '';\r\n const rating = self.starRating(v.UserLead.Rating);\r\n const date = window['moment'](v.Date).utcOffset(window['userTimezone'].Offset).format('LLL');\r\n\r\n /* todo data-timezone change after back */\r\n result +=\r\n `
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ${isComplited}\r\n ${isImportant}\r\n
    \r\n
    \r\n
    \r\n ${v.UserLead.Company_Name ?? ''} (${v.UserLead.IsConsumer ? 'Consumer' : 'Business'})\r\n
    \r\n
    \r\n ${(v.Subject ? v.Subject : \"\")}\r\n
    \r\n
    \r\n ${(v.Description ? v.Description : \"\")}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ${date}
    \r\n
    \r\n
    \r\n
    ${rating}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    `;\r\n });\r\n }\r\n\r\n $('.reminder-msg-section').empty().append(result);\r\n self.reminderOneFieldActions();\r\n });\r\n }\r\n\r\n //getListOfReminders(type, day, endDate = null) {\r\n // const self = this;\r\n // if (window['FirstRequestIgnore']) { // ??\r\n // return null;\r\n // }\r\n\r\n // //GetReminders(refers, calendarType) {\r\n // // $('#reminder-completed').is(':checked')\r\n // // var obj = {\r\n // // type: calendarType,\r\n // // refers: refers,\r\n // // important: $('#reminder-completed').is(':checked') ? 'Yes' : 'Any',\r\n // // processing: $('#reminder-completed').is(':checked') ? 'Any' : 'No',\r\n // // offset: '-180'\r\n // // }\r\n\r\n // // $.post('/Reminder/GetReminders', {\r\n // // obj\r\n // // },\r\n // // function (data) {\r\n // // if (data.Status == 'success')\r\n // // ($('#setCallReminderModal') as any).modal('hide');\r\n // // });\r\n // //};\r\n\r\n // window['lastSearchedNotificationDate'] = Date.parse(new Date(day).toUTCString());\r\n // $.get('/Reminder/GetReminders', {\r\n // end: endDate != null ? (endDate).toUTCString() : null,\r\n // important: $('#reminder-important').is(':checked') ? 'Yes' : 'Any',\r\n // processing: $('#reminder-completed').is(':checked') ? 'Yes' : 'No',\r\n // offset: window['userTimezone'].Offset,\r\n // refers: /*Date.parse(day.toUTCString()),*/window['TakeCurrentDate'] ? day : new Date(day).toUTCString(),\r\n // type: type,\r\n // }, (data) => {\r\n // let result = '';\r\n // if (data.Reminders.length == 0) {\r\n // result = `
    \r\n //
    \r\n //
    \r\n //
    \r\n // \r\n //
    \r\n //

    No notifications for selected period.

    \r\n //
    \r\n //
    \r\n //
    `;\r\n // } else {\r\n // $.each(data.Reminders, (i, v) => {\r\n // const isComplited = v.IsProcessing ? '' : '';\r\n // const isImportant = v.IsImportant ? '' : '';\r\n // const type = v.IsProcessing ? 'newMsg-completed' : '';\r\n // const rating = self.starRating(v.BusinessRowInfo.Rating);\r\n // // const time = t.addMinutes(new Date(v.Date), (-1 * new Date().getTimezoneOffset()));\r\n // const time = new Date(v.Date);\r\n // const date = self.convertDateInType(time, 'RowDate');\r\n\r\n // result +=\r\n // `
    \r\n //
    \r\n // \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n // ${isComplited}\r\n // ${isImportant}\r\n //
    \r\n //
    \r\n //
    \r\n // ${v.BusinessRowInfo.Company_Name ?? ''} (${v.BusinessRowInfo.IsConsumer ? 'Consumer' : 'Business'})\r\n //
    \r\n //
    \r\n // ${(v.Subject ? v.Subject : \"\")}\r\n //
    \r\n //
    \r\n // ${(v.Description ? v.Description : \"\")}\r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    ${date}
    \r\n //
    \r\n //
    \r\n //
    ${rating}
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n // \r\n //
    `;\r\n // });\r\n // }\r\n\r\n // $('.reminder-msg-section').empty().append(result);\r\n // self.reminderOneFieldActions();\r\n // });\r\n //}\r\n\r\n getListOfRemindersByDay(callback?) {\r\n const self = this;\r\n if (window['User'] != null) {\r\n $.get('/Reminder/GetReminders', {\r\n //offset: window['userTimezone'].Offset,\r\n startDate: self.getUtcStartRangeWithTimezone(new Date(), 'Day'),\r\n endDate: self.getUtcEndRangeWithTimezone(new Date(), 'Day'),\r\n //refers: (new Date()).toUTCString(),\r\n type: 'Week',\r\n }, (data) => {\r\n window['RemindersDone'] = {};\r\n window['RemindersList'] = data.Reminders;\r\n if (callback) callback();\r\n $('.root-preloader').hide();\r\n //self.checkReminders();\r\n });\r\n }\r\n }\r\n\r\n getEndRangeWithTimezone(date, type, momentFormat?) {\r\n return window['moment'](date).utcOffset(window['userTimezone'].Offset).endOf(type).format(momentFormat ?? '')\r\n }\r\n\r\n /**\r\n * getUtcEndRangeWithTimezone(date, type, momentFormat?): Function\r\n * @param date \r\n * @param type = Current, Day, Week, Month, Year\r\n * @param momentFormat - moment() format\r\n * @returns End UTC date range for user timezone\r\n */\r\n getUtcEndRangeWithTimezone(date, type: String, momentFormat?) { // +\r\n return window['moment'](date).utcOffset(window['userTimezone'].Offset).endOf(type).utc().format(momentFormat ?? '')\r\n }\r\n\r\n getStartRangeWithTimezone(date, type, momentFormat?) {\r\n return window['moment'](date).utcOffset(window['userTimezone'].Offset).startOf(type).format(momentFormat ?? '')\r\n }\r\n\r\n /**\r\n * getUtcStartRangeWithTimezone(date, type, momentFormat?): Function\r\n * @param date \r\n * @param type = Current, Day, Week, Month, Year\r\n * @param momentFormat - moment() format\r\n * @returns Start UTC date range for user timezone\r\n */\r\n getUtcStartRangeWithTimezone(date, type: String, momentFormat?) { // +\r\n return window['moment'](date).utcOffset(window['userTimezone'].Offset).startOf(type).utc().format(momentFormat ?? '')\r\n }\r\n\r\n refreshReminderRows() { // todo after back\r\n const self = this;\r\n //let date = window['lastSearchedNotificationDate'] ? new Date(window['lastSearchedNotificationDate']) : (new Date()); // old 2024-01-18\r\n //let date = window['lastSearchedNotificationDate'] ?? window['moment'](new Date()).utc().format(); // 2024-01-18\r\n self.reminderCount();\r\n const type = $('.reminder-tab .nav-link.active').data('type');\r\n let datesObj;\r\n switch (type) {\r\n case 'Current':\r\n window['InstanceBase'].getListOfReminders(type, null, window['InstanceBase'].getUtcEndRangeWithTimezone(new Date(), 'Day'));\r\n break;\r\n\r\n case 'Day':\r\n const day = ($('.devExReminderCalendar') as any).dxDateBox('instance').option('value');\r\n let startDate = window['moment'](day).add(-window['userTimezone'].Offset, 'hours').format().slice(0, -6) + 'Z';\r\n let endDate = window['moment'](startDate).add(24, 'hours').add(-1, 'second').utc().format();\r\n window['InstanceBase'].getListOfReminders(type, startDate, endDate);\r\n break;\r\n\r\n case 'Custom':\r\n case 'Month':\r\n case 'Week':\r\n datesObj = $('.reminder-content-header-period-text').text().split(' - ');\r\n window['InstanceBase'].getListOfReminders(type, window['moment'](datesObj[0]).add(-window['userTimezone'].Offset, 'hours').format().slice(0, -6) + 'Z', window['moment'](datesObj[1]).endOf('day').add(-window['userTimezone'].Offset, 'hours').format().slice(0, -6) + 'Z');\r\n break;\r\n\r\n case 'Year':\r\n datesObj = $('.reminder-content-header-period-text').text();\r\n window['InstanceBase'].getListOfReminders(type, window['moment'](`${datesObj}-01-01T00:00:00`).add(-window['userTimezone'].Offset, 'hours').format().slice(0, -6) + 'Z', window['moment'](`${datesObj}-12-31T23:59:59`).add(-window['userTimezone'].Offset, 'hours').format().slice(0, -6) + 'Z');\r\n break;\r\n\r\n }\r\n //if (type == 'Week') { // ?\r\n // const curentDate = $('.reminder-content-header-period-text').text();\r\n // let d = new Date(curentDate.split('-')[0]);\r\n // d = new Date(d.setDate(d.getDate() + 3));\r\n // date = d;\r\n //}\r\n //self.getListOfReminders(type, date);\r\n $('.reminder-selectAll').prop('checked', false);\r\n $('.reminder-mark-btn').prop('disabled', true);\r\n self.reminderChangeTextOnMarksBtns(false, false);\r\n }\r\n\r\n reminderChangeTextOnMarksBtns(allImportantCheck: boolean, allCompletedCheck: boolean) {\r\n allImportantCheck ? $('.reminder-markImportant span').empty().text('Unmark Important') : $('.reminder-markImportant span').empty().text('Mark Important');\r\n allCompletedCheck ? $('.reminder-markCompleted span').empty().text('Unmark Completed') : $('.reminder-markCompleted span').empty().text('Mark Completed');\r\n }\r\n\r\n /**\r\n * reminderCount(): Function\r\n * if user log in and change value on .devExReminderCalendar - change counts of Reminders and Notifications\r\n * @returns null if not changed value on .devExReminderCalendar\r\n */\r\n reminderCount() {\r\n const self = this;\r\n if (window['User'] != null) {\r\n if (window['FirstRequestIgnore'])\r\n return null;\r\n\r\n self.remindersCountRequests();\r\n }\r\n }\r\n\r\n /**\r\n * remindersCountRequests(): Function\r\n * get and show counts of Reminders and Notifications\r\n */\r\n remindersCountRequests() {\r\n const date = new Date();\r\n date.setMinutes(date.getMinutes() + .2);\r\n\r\n $.get('/Reminder/GetReminderCount', { utcTime: Date.parse(date.toUTCString()), offset: window['userTimezone'].Offset }, (reminderData) => {\r\n reminderData.count > 0 ? reminderData.count > 100 ? $('.reminders-badge-reminder').show().text('99+') : $('.reminders-badge-reminder').show().text(reminderData.count) : $('.reminders-badge-reminder').hide();\r\n\r\n $.get('/Reminder/GetUnreadedNotificationCount', notificationData => {\r\n notificationData.count > 0 ? notificationData.count > 100 ? $('.reminders-badge-notification').show().text('99+') : $('.reminders-badge-notification').show().text(notificationData.count) : $('.reminders-badge-notification').hide();\r\n\r\n const counts = +reminderData.count + +notificationData.count;\r\n counts > 0 ? counts > 100 ? $('.mh-reminder-badge').show().text('99+') : $('.mh-reminder-badge').show().text(counts) : $('.mh-reminder-badge').hide();\r\n });\r\n });\r\n }\r\n\r\n reminderInit(time?: number) {\r\n const self = this;\r\n if (time === undefined) time = 1000;\r\n setInterval(self.checkReminders, time, self);\r\n }\r\n\r\n reminderOneFieldActions() {\r\n const self = this;\r\n self.reminderOneFieldSelect();\r\n self.reminderOneFieldEdit();\r\n self.reminderOneFieldClickName();\r\n self.reminderOneFieldRemove();\r\n }\r\n\r\n reminderOneFieldClickName() {\r\n const self = this;\r\n $('.reminder-contact-name').off('click').on('click', (e: any) => { // === show CRM Card\r\n e.preventDefault();\r\n e.stopPropagation();\r\n const leadId = $(e.currentTarget).data('lead');\r\n //self.getCRMCardByLeadId(leadId);\r\n window['crmReminder'] = true;\r\n self.crmCard(leadId, 'Full');\r\n });\r\n }\r\n\r\n reminderOneFieldEdit() {\r\n const self = this;\r\n $('.newMsg-content-col').off('click').on('click', (e) => {\r\n $('.root-preloader').show();\r\n window['ReminderClick'] = {};\r\n const parent = $(e.currentTarget).parents('[data-id]');\r\n window['ReminderClick'] = {\r\n Date: $(e.currentTarget).find('.newMsg-date').data('date'),\r\n Description: $(e.currentTarget).find('.contact-msg-header-text').text(),\r\n IsImportant: $(e.currentTarget).find('.newMsg-text').data('isimportant'),\r\n IsProcessing: $(e.currentTarget).find('.newMsg-text').data('isprocessing'),\r\n Remind: parent.data('remindtime'),\r\n ReminderType: parent.data('remindtype'),\r\n RemindId: parent.data('id'),\r\n Subject: $(e.currentTarget).find('.contact-subject-text').text(),\r\n Timezone: $(e.currentTarget).find('.newMsg-date').data('timezone'),\r\n Title: $(e.currentTarget).find('.reminder-contact-name-text').text(),\r\n UserLeadId: parent.find('.reminder-contact-name').data('lead'),\r\n };\r\n\r\n self.setCallReminderModalLoad('Edit');\r\n //self.setCallReminderModalLoad(setCallReminderModalClickField);\r\n });\r\n\r\n //function setCallReminderModalClickField() { // => setCallReminderModal.ts\r\n // const rem = window['ReminderClick'];\r\n // ($('.scr-open-btn') as any).show();\r\n // $('.scr-name').text(rem.title);\r\n // $('.scr-mark-important').prop('checked', rem.isImportant);\r\n // $('.scr-mark-completed').prop('checked', rem.IsProcessing);\r\n // if (rem.remind > 0) {\r\n // ($('.scr-timeBefore-time') as any).dxSelectBox('instance').option('value', rem.remind + ' minutes');\r\n // ($('.scr-timeBefore-time') as any).dxSelectBox('instance').option('disabled', false);\r\n // $('#scr-timeBefore-check').prop('checked', true);\r\n // $('.scr-timeBefore-col').addClass('active');\r\n // }\r\n // ($('#scr-reminderType') as any).dxDropDownBox('instance').option('value', rem.ReminderType);\r\n // $('#scr-subject').val(rem.subject);\r\n // $('#scr-description').val(rem.description);\r\n\r\n // $('.scr-name').removeClass('noName');\r\n\r\n // ($('#setCallReminderModal') as any).modal('show');\r\n // // $('.modal-backdrop').hide();\r\n //}\r\n }\r\n\r\n reminderOneFieldRemove() {\r\n const self = this;\r\n $('.reminder .newMsg-close').off('click').on('click', (e) => { // === remove reminder item\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const obj = {\r\n callback: reminderDeleteOneReminderCallback,\r\n classYesBtn: 'removeReminder',\r\n textModal: 'Are you sure to delete this items from the Reminder list?',\r\n textNoBtn: 'Cancel',\r\n textYesBtn: 'Yes',\r\n titleModal: 'Remove Reminder',\r\n }\r\n self.onePropositionModalLoad(obj);\r\n\r\n function reminderDeleteOneReminderCallback() {\r\n const Id = $(e.currentTarget).data('id');\r\n $.post('/Reminder/RemoveReminder', {\r\n Id: Id\r\n }, () => {\r\n self.refreshReminderRows();\r\n self.getListOfRemindersByDay();\r\n });\r\n }\r\n });\r\n }\r\n\r\n reminderOneFieldSelect() {\r\n const self = this;\r\n $('.reminder-msg-section .newMsg-select').off('click').on('click', () => {\r\n const allCheckboxes = $('.reminder-msg-section').find('.newMsg');\r\n const checkedCheckboxes = $('.reminder-msg-section').find('.newMsg-select:checked');\r\n if (checkedCheckboxes.length > 0) {\r\n let isAllImportant = true;\r\n let isAllCompleted = true;\r\n for (let i = 0; i < checkedCheckboxes.length; i++) {\r\n const isImportantIcon = $(checkedCheckboxes[i]).closest('.newMsg').find('.icon-important');\r\n const isCompletedIcon = $(checkedCheckboxes[i]).closest('.newMsg').find('.icon-completed');\r\n if (!isImportantIcon.length) isAllImportant = false;\r\n if (!isCompletedIcon.length) isAllCompleted = false;\r\n }\r\n self.reminderChangeTextOnMarksBtns(isAllImportant, isAllCompleted);\r\n $('.reminder-mark-btn').prop('disabled', false);\r\n } else {\r\n self.reminderChangeTextOnMarksBtns(false, false);\r\n $('.reminder-mark-btn').prop('disabled', true);\r\n }\r\n checkedCheckboxes.length < allCheckboxes.length ? $('.reminder-selectAll').prop('disabled', false) : $('.reminder-selectAll').prop('disabled', true);\r\n });\r\n }\r\n\r\n setCallReminderModalToast(title, id, isRemind) {\r\n const self = this;\r\n\r\n $('.root-preloader').show();\r\n\r\n $.post('/Reminder/GetReminderById', { Id: id, offset: window['userTimezone'].Offset }, data => {\r\n const reminderClick = {\r\n // Date: self.addMinutes(new Date(data.Date), (-1 * new Date().getTimezoneOffset())),\r\n Date: new Date(data.Date),\r\n Description: data.Description,\r\n IsImportant: data.IsImportant,\r\n IsProcessing: data.IsProcessing,\r\n IsRemind: isRemind,\r\n Remind: data.Remind,\r\n ReminderType: data.ReminderType,\r\n RemindId: id,\r\n Subject: data.Subject,\r\n Timezone: data.TimeZone,\r\n Title: title,\r\n UserLeadId: data.UserLeadId,\r\n };\r\n window['ReminderClick'] = reminderClick;\r\n\r\n //window['editReminderFromMyCRM'] = true; // ???\r\n\r\n self.setCallReminderModalLoad('Edit');\r\n })\r\n\r\n //if ($('#setCallReminderModal').length) {\r\n // setCallReminderModalToastCallback();\r\n //} else {\r\n // $.post('/Popups/SetCallReminderModal', data => {\r\n // $('body').append(data);\r\n // self.reminderModal();\r\n // setCallReminderModalToastCallback();\r\n // });\r\n //}\r\n\r\n //// self.setCallReminderModalLoad(setCallReminderModalToastCallback);\r\n\r\n //function setCallReminderModalToastCallback() {\r\n // $.post('/Reminder/GetReminderById', { Id: id, offset: window['userTimezone'].Offset }, data => {\r\n // window['IsEditReminder'] = true;\r\n // $('.scr-open-btn').hide();\r\n\r\n // const reminderClick = {\r\n // BusinessRowInfoId: data.BusinessRowInfoId,\r\n // // data: self.addMinutes(new Date(data.Date), (-1 * new Date().getTimezoneOffset())),\r\n // data: new Date(data.Date),\r\n // description: data.Description,\r\n // isImportant: data.IsImportant,\r\n // IsProcessing: data.IsProcessing,\r\n // isRemind: isRemind,\r\n // remind: data.Remind,\r\n // ReminderType: data.ReminderType,\r\n // remindId: id,\r\n // subject: data.Subject,\r\n // timeZone: data.TimeZone,\r\n // title: title,\r\n // };\r\n // window['ReminderClick'] = reminderClick;\r\n\r\n // window['editReminderFromMyCRM'] = true;\r\n\r\n // $('.scr-name').text(reminderClick.title);\r\n // $('#scr-important').prop('checked', reminderClick.isImportant);\r\n // $('#scr-completed').prop('checked', reminderClick.IsProcessing);\r\n // if (reminderClick.remind > 0) {\r\n // ($('.scr-timeBefore-time') as any).dxSelectBox('instance').option('value', reminderClick.remind + ' minutes');\r\n // $('#scr-timeBefore-check').prop('checked', true);\r\n // }\r\n // ($('#scr-reminderType') as any).dxDropDownBox('instance').option('value', reminderClick.ReminderType);\r\n // $('#scr-subject').val(reminderClick.subject);\r\n // $('#scr-description').val(reminderClick.description);\r\n\r\n // ($('#setCallReminderModal') as any).modal('show');\r\n // $('.modal-backdrop').hide();\r\n // });\r\n //}\r\n }\r\n\r\n showReminderToast(reminder: any, isRemind) {\r\n const self = this;\r\n reminder.Date = new Date(reminder.Date);\r\n\r\n let rate = reminder.UserLead.Rating;\r\n if (rate == null || rate == undefined) rate = 0;\r\n // // stars += '
    ';\r\n // let stars_width = rate * 22.0;\r\n // stars += `
    `;\r\n //stars += '
    ';\r\n\r\n const toast = $('
    ');\r\n //const toast = $('
    ');\r\n const buttonClose = $('');\r\n const toastBody = $('
    ');\r\n const toastContent = `\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n ${reminder.UserLead.Company_Name ?? ''}\r\n
    \r\n
    \r\n ${reminder.Subject ?? ''}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ${isRemind ? reminder.Remind + ' minutes' : window['moment'](reminder.Date).utcOffset(window['userTimezone'].Offset).format('L, LT')}
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    `;\r\n toastBody.append(toastContent);\r\n $(toast).append(buttonClose).append(toastBody);\r\n\r\n +$('.clicks-position').css('opacity') ? $('.alertMsg-content').prepend(toast) : $('.otherToast-position').prepend(toast);\r\n ($(toast) as any).toast('show');\r\n\r\n\r\n $(toastBody).off('click').on('click', (e: Event) => {\r\n //const title = $(e.target).closest('.bell-newMsg').data('companyname');\r\n\r\n //self.setCallReminderModalToast(title, $(e.target).closest('.bell-newMsg').data('id'), isRemind);\r\n $('.root-preloader').show();\r\n\r\n const reminderClick = {\r\n // Date: self.addMinutes(new Date(data.Date), (-1 * new Date().getTimezoneOffset())),\r\n Date: reminder.Date,\r\n Description: reminder.Description,\r\n IsImportant: reminder.IsImportant,\r\n IsProcessing: reminder.IsProcessing,\r\n IsRemind: isRemind,\r\n Remind: reminder.Remind,\r\n ReminderType: reminder.ReminderType,\r\n RemindId: reminder.Id,\r\n Subject: reminder.Subject,\r\n Timezone: reminder.TimeZone,\r\n Title: reminder.UserLead.Company_Name,\r\n UserLeadId: reminder.UserLeadId,\r\n }\r\n window['ReminderClick'] = reminderClick;\r\n\r\n self.setCallReminderModalLoad('Edit');\r\n });\r\n }\r\n\r\n //#region === SetCallReminderModal ===\r\n //crmCardRefreshReminders() {\r\n // this.log('crmCardRefreshReminders');\r\n\r\n // const self = this;\r\n // this.SrcReminder = (window['DevExpress'] as any).data.AspNet.createStore({\r\n // loadUrl: '/Reminder/Reminders',\r\n // // loadParams: { Id: window['leadId'], offset: (new Date()).getTimezoneOffset(), now: (new Date).toUTCString() },\r\n // loadParams: { Id: window['leadId'], offset: window['userTimezone'].Offset, now: Date.parse((new Date).toUTCString()) },\r\n // loadMethod: 'POST',\r\n // onLoading: (loadOptions) => {\r\n // self.log('SrcReminder.OnLoading', loadOptions, window['leadId'])\r\n // },\r\n // onLoaded: (result) => {\r\n // self.log('SrcReminder.OnLoaded', result)\r\n // }\r\n // });\r\n // $('.ReminderLog').dxDataGrid({\r\n // dataSource: (self.SrcReminder as any),\r\n // columns: [\r\n // {\r\n // cellTemplate: (container, e) => {\r\n // const status = e.data.IsImportant ? '!' : '';\r\n // $('
    ').append(status).appendTo(container);\r\n // },\r\n // dataField: '!',\r\n // headerCellTemplate(container) {\r\n // container.append($('
    !
    '));\r\n // const parent = $('.reminderLog-important-header').closest('td');\r\n // $(parent).attr('data-bs-toggle', 'tooltip').attr('data-bs-placement', 'right').attr('title', 'Important').attr('data-offset', '0 5');\r\n // ($(parent) as any).tooltip('enable');\r\n // },\r\n // width: 15\r\n // },\r\n // {\r\n // dataField: 'Date',\r\n // dataType: 'date',\r\n // format: (d) => {\r\n // // let date = self.addMinutes(new Date(d), (-1 * new Date().getTimezoneOffset()))\r\n // const date = new Date(d);\r\n // const month = (date as any).getMonth() + 1,\r\n // day = (date as any).getDate(),\r\n // year = (date as any).getFullYear(),\r\n // time = (date as any).toLocaleString([], { hour: '2-digit', minute: '2-digit' });\r\n\r\n // return month + '/' + day + '/' + year + ', ' + time;\r\n // },\r\n // sortOrder: 'desc',\r\n // width: 135\r\n // },\r\n // {\r\n // dataField: 'Type'\r\n // },\r\n // {\r\n // dataField: 'Subject'\r\n // },\r\n // {\r\n // dataField: 'Description'\r\n // },\r\n // {\r\n // cellTemplate: (container, e) => {\r\n // // let date = self.addMinutes(new Date(e.data.Date), (-1 * new Date().getTimezoneOffset()));\r\n // const date = e.data.Date;\r\n // let status = 'Expired';\r\n // // if (date.getDate() > (new Date().getUTCDate() as any) && date > new Date) {\r\n // if (date.getDate() > (new Date().getDate() as any) && date > new Date) {\r\n // status = 'Upcoming';\r\n // } else {\r\n // status = date > new Date ? 'Active' : e.data.IsProcessing ? 'Completed' : 'Expired';\r\n // }\r\n // $('
    ').append('' + status + '').appendTo(container);\r\n // },\r\n // dataField: 'Status',\r\n // },\r\n // {\r\n // cellTemplate: (container, e) => {\r\n // $('
    ')\r\n // .append('' +\r\n // '')\r\n // .appendTo(container);\r\n // },\r\n // width: 60,\r\n // }\r\n // ],\r\n // height: '100%',\r\n // onRowDblClick: (e) => {\r\n // const title = $('#detailed_business_modal .companyName .text-ellipsis').text();\r\n // self.setCallReminderModalToast(title, e.data.Id, false);\r\n // },\r\n // pager: {\r\n // allowedPageSizes: [20, 50, 100, 150],\r\n // displayMode: 'compact',\r\n // showInfo: true,\r\n // showNavigationButtons: true,\r\n // showPageSizeSelector: true,\r\n // visible: true\r\n // },\r\n // paging: {\r\n // enabled: true,\r\n // pageSize: 20\r\n // },\r\n // rowAlternationEnabled: true,\r\n // showBorders: true,\r\n // showColumnLines: true,\r\n // });\r\n //}\r\n\r\n //#endregion\r\n\r\n\r\n //#endregion\r\n\r\n // #region free functions\r\n //CloseModal(modalId) {\r\n // debugger;\r\n //}\r\n\r\n //CheckLocation() {\r\n // switch (window.location.pathname) {\r\n // case '/': this.setActiveMainMenuLink('home'); break;\r\n // case '/Business': this.setActiveMainMenuLink('business'); break;\r\n // case '/Userleads': this.setActiveMainMenuLink('userlead'); break;\r\n // }\r\n //}\r\n\r\n //setActiveMainMenuLink(target: string) {\r\n // let links = $('.header-links').find('.' + target);\r\n // $('.header-links').find('.nav-links').removeClass('active');\r\n // $(links as any).addClass('active');\r\n //}\r\n\r\n //removeEventCompanyClick(eventId) {\r\n // $.get('/Event/Remove', { Id: eventId }, (data) => {\r\n // let oldClicks = +$('.hideToastCompany-badge').text()\r\n // oldClicks--;\r\n // $('.hideToastCompany-badge').text(oldClicks)\r\n // });\r\n //}\r\n // #endregion\r\n}\r\nwindow['Base'] = Base;\r\nmodule.exports = Base;","export function dialerCallBtns(isActive) {\r\n $('#mainDialer .dialer-callBtn.caller').prop('disabled', !isActive)\r\n $('#crmCard-call-btn').prop('disabled', !isActive);\r\n $('#crmCard-roboCall-btn').prop('disabled', !isActive);\r\n}\r\n\r\nexport function callCustomerOnCRMCard() {\r\n $('#crmCard-leadStatus-btn').removeClass('leadStatusSelect');\r\n $('#crmCard-voiceMsg-btn').prop('disabled', false);\r\n}\r\n\r\nexport function deviceDisconnectOnCRMCard() {\r\n $('#crmCard-voiceMsg-btn').prop('disabled', true);\r\n ($('.voiceMessages-dropdown') as any).dropdown('hide');\r\n}\r\n\r\nexport function onCallRecord() {\r\n const recBtn = $('.rec-btn');\r\n recBtn.prop('disabled', false);\r\n\r\n if (window['User'].RAI) {\r\n recordAnimation();\r\n } else {\r\n recBtn.off('click').on('click', () => {\r\n recordAnimation();\r\n })\r\n }\r\n}\r\n\r\nexport function recordAnimation() {\r\n const recBtn = $('.rec-btn');\r\n const circle = $('#recordCall .rec-btn .fa-circle');\r\n const stop = $('#recordCall .rec-btn .fa-stop');\r\n if (recBtn.hasClass('rec-btn-anim')) {\r\n recBtn.removeClass('rec-btn-anim');\r\n $('.rec-btn .rec-stop-text').text('Rec');\r\n stop.hide();\r\n circle.show();\r\n } else {\r\n recBtn.addClass('rec-btn-anim');\r\n $('.rec-btn .rec-stop-text').text('Stop');\r\n circle.hide();\r\n stop.show();\r\n }\r\n}\r\n\r\nexport function updateCallStatus(status) {\r\n $('.dialer-callStatus').text(status);\r\n}\r\n\r\nexport function updateCallTime(elem) {\r\n $('.dialer-callTime').html(elem);\r\n}","interface CategoryColorItem {\r\n Id: number,\r\n Overight?: number,\r\n Name: string,\r\n ToHtml: string,\r\n Argb: number,\r\n Color: {\r\n R: number,\r\n G: number,\r\n B: number\r\n }\r\n}\r\n\r\ninterface ColorRGB {\r\n r: number,\r\n g: number,\r\n b: number\r\n}\r\n\r\ninterface CategoryColorGui {\r\n Parent: JQuery,\r\n Select: JQuery,\r\n Edit: JQuery,\r\n Remove: JQuery\r\n}\r\n\r\ninterface CategoryColorGuiItem { Item: CategoryColorItem, Gui: CategoryColorGui }\r\n\r\nexport default class CategoryColor {\r\n _color: string;\r\n _dropDown: JQuery;\r\n _list: CategoryColorItem[];\r\n _listGui: CategoryColorGuiItem[];\r\n _name: string;\r\n _popup: JQuery;\r\n _selected?: number;\r\n _target: string;\r\n IsHub: boolean;\r\n Kid: CategoryColor;\r\n OnChange?: Function;\r\n OnClick?: Function;\r\n OnReady?: Function;\r\n OnSelect?: Function;\r\n\r\n constructor(target: string, id?: number, isHub?: boolean) {\r\n const self = this;\r\n this._list = [];\r\n this._target = target;\r\n this._dropDown = $(target).parents('.dropdown');\r\n //this._popup = this._dropDown.find('.selectColorCategory')\r\n this.IsHub = isHub ?? false;\r\n this._selected = id;\r\n this._name = '';\r\n this._color = '#000000';\r\n this.catColorClear();\r\n //this._dropDown.on('hide.bs.dropdown', () => {\r\n // if (!$('.selectColorCategory__color-dropdown').length) self._popup.dxPopup('instance').hide();\r\n //});\r\n //this._popup.find('.selectColorCategory-close').on('.click', () => {\r\n // self._popup.hide();\r\n //});\r\n //this._popup.on('click', (e) => {\r\n // e.stopPropagation();\r\n // if ($(e.target).hasClass('selectColorCategory-close')) {\r\n // self._popup.hide();\r\n // }\r\n //});\r\n $(document).on('click', 'body', (e) => {\r\n if (!$(e.target).closest(self._dropDown).length) {\r\n ($(self._dropDown) as any).dropdown('hide');\r\n }\r\n })\r\n $(document).off('click', target).on('click', target, (e) => {\r\n e.stopPropagation();\r\n if (!!self.OnClick)\r\n self.OnClick(e);\r\n })\r\n $(target).off('click').on('click', (e: any) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (!!self.OnClick)\r\n self.OnClick(e);\r\n })\r\n this._dropDown.find('.colorDefault').on('click', (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n self.catColorSelect();\r\n });\r\n this._dropDown.find('.AddCategory').on('click', (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n self.catColorShowPopup('Create', () => {\r\n //self._popup.find('.selectColorCategory__name').off('keydown').on('keydown', (e: any) => {\r\n // if (self.popupName.length)\r\n // if (e.keyCode === 13)\r\n // self.catColorExecuteCategory(0);\r\n //});\r\n\r\n //self._popup.find('.selectColorCategory__name').off('input change').on('input change', (e: any) => {\r\n // const bt = this._popup.find('.selectColorCategory__save');\r\n // ($(e.target) as any).val().length ? bt.prop('disabled', false) : bt.prop('disabled', true);\r\n //});\r\n\r\n $('.selectColorCategory__save').off('click').on('click', () => {\r\n self.catColorExecuteCategory(0);\r\n });\r\n });\r\n });\r\n }\r\n\r\n //get popupColor(): ColorRGB {\r\n get popupColor() {\r\n //const color = $('.selectColorCategory__color');\r\n //const hexColor = (color as any).dxColorBox('instance').option('value') as string;\r\n //const hexColor = this._color;\r\n //const r = parseInt(hexColor[1] + hexColor[2], 16);\r\n //const g = parseInt(hexColor[3] + hexColor[4], 16);\r\n //const b = parseInt(hexColor[5] + hexColor[6], 16);\r\n //return { r, g, b }\r\n return this._color;\r\n }\r\n\r\n set popupColor(Color) {\r\n ////const color = $('.selectColorCategory__color');\r\n //this._color = '#' + addZ(Color.r.toString(16)) + addZ(Color.g.toString(16)) + addZ(Color.b.toString(16));\r\n ////const hexColor = '#' + addZ(Color.r.toString(16)) + addZ(Color.g.toString(16)) + addZ(Color.b.toString(16));\r\n\r\n //function addZ(s: string) {\r\n // if (s.length == 0) return '00';\r\n // if (s.length == 1) return '0' + s;\r\n // return s;\r\n //}\r\n ////(color as any).dxColorBox('instance').option('value', hexColor);\r\n //this._color = this.catColorConvertColor(Color);\r\n this._color = Color;\r\n }\r\n\r\n get popupName(): string {\r\n //const name = $('.selectColorCategory__name');\r\n //return name.dxTextBox('instance').option('text');\r\n return this._name;\r\n }\r\n\r\n set popupName(v: string) {\r\n //const name = $('.selectColorCategory__name');\r\n this._name = v;\r\n //const bt = $('.selectColorCategory__save');\r\n //v.length > 0 ?\r\n // bt.prop('disabled', false) :\r\n // bt.prop('disabled', true);\r\n //name.dxTextBox('instance').option('value', v);\r\n }\r\n\r\n get selected(): number {\r\n return this._selected;\r\n }\r\n\r\n set selected(id: number) {\r\n this._selected = id;\r\n const it = this.selectedItem;\r\n if (!it) {\r\n this._selected = undefined;\r\n }\r\n this.catColorSelect(it);\r\n }\r\n\r\n get selectedItem(): CategoryColorItem | undefined {\r\n return this._list.find(x => x?.Id == this._selected);\r\n }\r\n\r\n get selectedItemGui(): CategoryColorGuiItem | undefined {\r\n return this._listGui.find(x => x?.Item?.Id == this._selected);\r\n }\r\n\r\n catColorAddItem(Item: CategoryColorItem, fromKid?: boolean) {\r\n const self = this;\r\n const header = this._dropDown.find('.colorCategory-menu-color');\r\n const GuiItem: CategoryColorGuiItem = {\r\n Gui: self.catColorRenderItem(Item),\r\n Item: Item,\r\n };\r\n self.catColorAddAction(GuiItem);\r\n header.append(GuiItem.Gui.Parent);\r\n self._list.push(Item);\r\n self._listGui.push(GuiItem);\r\n if (this.OnChange) this.OnChange('Add', Item);\r\n if (!fromKid)\r\n this.Kid?.catColorAddItem(Item);\r\n }\r\n\r\n catColorAddAction(Item: CategoryColorGuiItem) {\r\n const self = this;\r\n Item.Gui.Edit.on('click', (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n self.popupName = Item.Item.Name;\r\n //self.popupColor = {\r\n // r: Item.Item.Color.R,\r\n // g: Item.Item.Color.G,\r\n // b: Item.Item.Color.B\r\n //};\r\n self.popupColor = self.catColorConvertColor({\r\n r: Item.Item.Color.R,\r\n g: Item.Item.Color.G,\r\n b: Item.Item.Color.B\r\n })\r\n self.catColorShowPopup('Edit', () => {\r\n //self._popup.find('.selectColorCategory__name').off('keydown').on('keydown', (e: any) => {\r\n // if (e.keyCode === 13)\r\n // self.catColorExecuteCategory(Item.Item.Id);\r\n //});\r\n\r\n //self._popup.find('.selectColorCategory__name').off('input change').on('input change', (e: any) => {\r\n // ($(e.target) as any).val().length ? $('.selectColorCategory__save').prop('disabled', false) : $('.selectColorCategory__save').prop('disabled', true);\r\n // // $('.selectColorCategory__save').prop('disabled', !CheckColor());\r\n //});\r\n\r\n $('.selectColorCategory__save').off('click').on('click', (e: Event) => {\r\n self.catColorExecuteCategory(Item.Item.Id);\r\n });\r\n\r\n });\r\n });\r\n Item.Gui.Remove.on('click', (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n $.get('/UserLeads/CountCategory', { id: Item.Item.Id }, (data: string | number) => { // how leads are this category\r\n const objModal = {\r\n callback: CallbackOnDeleteColorCategory,\r\n classYesBtn: 'deleteColorCategory',\r\n textModal: `There are ${data} nr of leads with this category,
    are you sure you want to delete it?`,\r\n textNoBtn: 'No',\r\n textYesBtn: 'Yes',\r\n titleModal: 'Make sure to review this category before deleting',\r\n }\r\n window['InstanceBase'].onePropositionModalLoad(objModal);\r\n });\r\n function CallbackOnDeleteColorCategory() {\r\n $.get('/userleads/deletecategory', { id: Item.Item.Id }, (data: CategoryColorItem) => {\r\n self.catColorRemove(data);\r\n });\r\n }\r\n });\r\n Item.Gui.Parent.on('click', (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n self.catColorSelect(Item.Item);\r\n });\r\n }\r\n\r\n catColorApplyList(list: CategoryColorItem[]) {\r\n this._list = list;\r\n this.catColorRender();\r\n }\r\n\r\n catColorClear() {\r\n this._dropDown.find('.dropdown-menu.colorCategory-dropdown-menu .colorCategory-menu-color').html('');\r\n }\r\n\r\n catColorConvertColor(Color: ColorRGB) {\r\n return '#' + addZ(Color.r.toString(16)) + addZ(Color.g.toString(16)) + addZ(Color.b.toString(16));\r\n\r\n function addZ(s: string) {\r\n if (s.length == 0) return '00';\r\n if (s.length == 1) return '0' + s;\r\n return s;\r\n }\r\n }\r\n\r\n catColorCreatePopup(text: String) {\r\n const self = this;\r\n const popup = this._popup;\r\n try {\r\n $(popup).dxPopup('instance').dispose();\r\n } catch (ex) { }\r\n\r\n const popupContent = () => {\r\n return $('
    ').append(\r\n $(`
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    `),\r\n $(`
    \r\n \r\n
    `),\r\n );\r\n }\r\n $(popup).dxPopup({\r\n closeOnOutsideClick: true,\r\n container: 'body',\r\n contentTemplate: popupContent,\r\n dragEnabled: false,\r\n onHidden: () => {\r\n $('.colorCategoryDropdownBtn').unbind('hide.bs.dropdown');\r\n self._name = '';\r\n self._color = '#000000';\r\n },\r\n onShowing: () => {\r\n $('.colorCategoryDropdownBtn').bind('hide.bs.dropdown', (e) => {\r\n e.preventDefault();\r\n });\r\n const parent = $('.selectColorCategory__content').closest('.dx-popup-wrapper').find('.dx-popup-title');\r\n $(parent).css('background-color', '#012169');\r\n $(parent).css('color', '#fff');\r\n $($(parent).find('.dx-icon-close')).css('color', '#fff');\r\n },\r\n position: {\r\n at: 'top',\r\n my: 'left bottom',\r\n of: self._target,\r\n //of: `${$(self._target).closest('.colorCategory-dropdown-menu')}`,\r\n },\r\n title: `${text} category`,\r\n visible: true,\r\n width: 240,\r\n height: 273\r\n })\r\n\r\n self.catColorPickerName();\r\n self.catColorPicker();\r\n }\r\n\r\n catColorEdit(Item: CategoryColorItem, fromKid?: boolean) {\r\n const self = this;\r\n let old = self._list.find(x => x.Id == Item.Id);\r\n if (!old)\r\n old = self._list.find(x => x.Id == x.Overight);\r\n if (old) {\r\n let g = self._listGui.find(x => x.Item == old);\r\n old.Argb = Item.Argb;\r\n old.Color = Item.Color;\r\n old.Name = Item.Name;\r\n old.ToHtml = Item.ToHtml;\r\n g.Gui.Select.find('.colorPicker').css('background-color', Item.ToHtml);\r\n g.Gui.Select.find('.colorCategoryName').html(Item.Name.charAt(0).toUpperCase() + Item.Name.slice(1))\r\n if (self._selected == old.Id) {\r\n self._dropDown.find('.selectedColor').css('background-color', Item.ToHtml);\r\n self._dropDown.find('.selectedCategory').html(Item.Name.charAt(0).toUpperCase() + Item.Name.slice(1));\r\n }\r\n }\r\n else {\r\n self.catColorAddItem(Item)\r\n }\r\n\r\n if (this.OnChange) this.OnChange('Edit', Item);\r\n if (!fromKid)\r\n this.Kid?.catColorEdit(Item);\r\n }\r\n\r\n catColorExecuteCategory(id: number) {\r\n const self = this;\r\n const name = self.popupName;\r\n const hexColor = self.popupColor;\r\n const r = parseInt(hexColor[1] + hexColor[2], 16);\r\n const g = parseInt(hexColor[3] + hexColor[4], 16);\r\n const b = parseInt(hexColor[5] + hexColor[6], 16);\r\n //const color = self.popupColor;\r\n const color = { r, g, b };\r\n if (id === 0) {\r\n $.get('/userleads/addcategory', { name: name, r: color.r, g: color.g, b: color.b }, (data: CategoryColorItem) => {\r\n self.catColorAddItem(data);\r\n self._popup.dxPopup('instance').hide();\r\n });\r\n }\r\n else {\r\n $.get('/userleads/editcategory', { id: id, name: name, r: color.r, g: color.g, b: color.b }, (data: CategoryColorItem) => {\r\n if (id < 0)\r\n data.Id = id; //Fix Default Category\r\n self.catColorEdit(data);\r\n self._popup.dxPopup('instance').hide();\r\n });\r\n }\r\n }\r\n\r\n catColorGetList(callback?: Function) {\r\n const self = this;\r\n $.get('/UserLeads/GetCategory', { IsHub: self.IsHub }, (list: [CategoryColorItem]) => {\r\n self._list = list;\r\n self.catColorRender();\r\n if (!!callback) {\r\n callback(list);\r\n }\r\n });\r\n }\r\n\r\n catColorPicker() {\r\n const self = this;\r\n try {\r\n $('.selectColorCategory__color-text').dxTextBox('instance').dispose();\r\n ($('.selectColorCategory__color') as any).dxColorBox('instance').dispose();\r\n } catch (ex) { }\r\n\r\n ($('.selectColorCategory__color') as any).dxColorBox({\r\n dropDownOptions: {\r\n wrapperAttr: {\r\n class: 'selectColorCategory__color-dropdown'\r\n },\r\n },\r\n //editAlphaChannel: true,\r\n elementAttr: {\r\n class: 'custom-input'\r\n },\r\n fieldTemplate: (colorRGB, element) => {\r\n const div = $('
    ').dxTextBox({\r\n inputAttr: {\r\n class: 'selectColorCategory__color-bg'\r\n },\r\n onValueChanged: (e) => {\r\n $('.selectColorCategory__color-bg').css('background-color', e.value);\r\n parseInt(e.value.slice(1, 3), 16) > 170 ? $('.selectColorCategory__color-bg').css('color', '#000') : $('.selectColorCategory__color-bg').css('color', '#fff');\r\n },\r\n readOnly: true,\r\n //value: self.popupColor\r\n });\r\n return div;\r\n },\r\n inputAttr: {\r\n 'aria-label': 'Category filter color',\r\n },\r\n //onClosed: () => {\r\n // $('.colorCategoryDropdownBtn').unbind('hide.bs.dropdown');\r\n //},\r\n //onOpened: () => {\r\n // $('.colorCategoryDropdownBtn').bind('hide.bs.dropdown', (e) => {\r\n // e.preventDefault();\r\n // })\r\n // $('.selectColorCategory').bind('hide', (e) => {\r\n // e.preventDefault();\r\n // })\r\n //},\r\n onContentReady: (e) => {\r\n setTimeout(() => { $('.selectColorCategory__name').dxTextBox('instance').focus(); }, 500);\r\n e.component.option('value', self._color)\r\n },\r\n onValueChanged: (e) => {\r\n e.element.find('.selectColorCategory__color-text').dxTextBox('instance').option('value', e.value);\r\n self.popupColor = e.value;\r\n },\r\n openOnFieldClick: true,\r\n showDropDownButton: false,\r\n //value: self._color,\r\n width: '100%',\r\n });\r\n\r\n }\r\n\r\n catColorPickerName() {\r\n const self = this;\r\n try {\r\n $('.selectColorCategory__name').dxTextBox('instance').dispose();\r\n } catch (ex) { }\r\n\r\n $('.selectColorCategory__name').dxTextBox({\r\n inputAttr: { 'aria-label': 'Picker name' },\r\n onContentReady: (e) => {\r\n const bt = $('.selectColorCategory__save');\r\n $(bt).prop('disabled', e.component.option('text').length ? false : true);\r\n },\r\n onInput: (e) => {\r\n const bt = $('.selectColorCategory__save');\r\n $(bt).prop('disabled', e.component.option('text').length ? false : true);\r\n },\r\n onKeyDown: (e) => {\r\n if (self.popupName.length)\r\n if (e.event['originalEvent'].keyCode === 13)\r\n self.catColorExecuteCategory(0);\r\n },\r\n onValueChanged: (e) => {\r\n self.popupName = e.component.option('value');\r\n },\r\n value: self.popupName\r\n });\r\n }\r\n\r\n catColorRemove(Item: CategoryColorItem, fromKid?: boolean) {\r\n const old = this._list.find(x => x.Id == Item.Id);\r\n if (old) {\r\n const g = this._listGui.find(x => x.Item == old);\r\n g.Gui.Parent.remove();\r\n this._list = this._list.filter(x => x.Id != Item.Id);\r\n this._listGui = this._listGui.filter(x => x.Item.Id != Item.Id);\r\n if (this._selected == old.Id) {\r\n this.selected = 0;\r\n }\r\n }\r\n\r\n if (this.OnChange) this.OnChange('Remove', Item);\r\n if (!fromKid)\r\n this.Kid?.catColorRemove(Item);\r\n }\r\n\r\n catColorRender() {\r\n const self = this;\r\n this.catColorClear();\r\n this._listGui = [];\r\n const header = this._dropDown.find('.colorCategory-menu-color');\r\n this._listGui = this._list?.map((it) => {\r\n const GuiItem: CategoryColorGuiItem = {\r\n Gui: self.catColorRenderItem(it),\r\n Item: it,\r\n };\r\n self.catColorAddAction(GuiItem);\r\n header.append(GuiItem.Gui.Parent);\r\n return GuiItem;\r\n })\r\n // header.append()\r\n if (!!this._selected) {\r\n this.selected = this._selected;\r\n // header.find(`.dropdown-item[data-id=\"${this._selected}\"]`).trigger('click', { target: this });\r\n }\r\n }\r\n\r\n catColorRenderItem(Item: CategoryColorItem): CategoryColorGui {\r\n const dropdownItem = $('
    ')\r\n const row = $(`
    `);\r\n const col = $('
    ');\r\n const colAuto1 = $('
    ');\r\n const colAuto2 = $('
    ');\r\n const editBtn = $('');\r\n const deleteBtn = $(``);\r\n const $el2: any = $(`
    ${Item.Name.charAt(0).toUpperCase() + Item.Name.slice(1)}
    `);\r\n col.append($el2);\r\n colAuto1.append(editBtn);\r\n colAuto2.append(deleteBtn);\r\n row.append(col).append(colAuto1).append(colAuto2);\r\n dropdownItem.append(row);\r\n return {\r\n Parent: dropdownItem,\r\n Select: $el2,\r\n Edit: editBtn,\r\n Remove: deleteBtn\r\n };\r\n }\r\n\r\n catColorSelect(Item?: CategoryColorItem) {\r\n if (Item) {\r\n this._dropDown.find('.selectedColor')\r\n .empty()\r\n .css('background-color', Item.ToHtml); // show selected color\r\n this._dropDown\r\n .find('.selectedCategory')\r\n .html(Item.Name); // show name category\r\n this._dropDown.find('.colorCategoryDropdownBtn')\r\n .attr('data-id', Item.Id);\r\n this._selected = Item.Id;\r\n }\r\n else {\r\n this._dropDown.find('.selectedColor')\r\n .html('\"\"')\r\n .css('background-color', 'transparent');\r\n this._dropDown\r\n .find('.selectedCategory')\r\n .html('Category Filter');\r\n this._dropDown.find('.colorCategoryDropdownBtn')\r\n .removeAttr('data-id');\r\n this._selected = undefined;\r\n }\r\n if (this.OnSelect) {\r\n if (this.OnSelect(Item?.Id, Item)) {\r\n //true or any element\r\n }\r\n else {\r\n //$('.colorCategoryDropdownBtn').unbind('hide.bs.dropdown');\r\n ($('.colorCategoryDropdownBtn') as any).dropdown('hide');\r\n }\r\n }\r\n else {\r\n //$(this._dropDown as any).unbind('hide.bs.dropdown');\r\n ($('.colorCategoryDropdownBtn') as any).dropdown('hide');\r\n //(this._dropDown as any\r\n }\r\n }\r\n\r\n catColorShowPopup(text: string, callback: Function) {\r\n const self = this;\r\n this._popup = this._dropDown.find('.selectColorCategory');\r\n self.catColorCreatePopup(text);\r\n //this._popup.find('.selectColorCategory__save').prop('disabled', true);\r\n //this._popup.find('.selectColorCategory__save').html(text == 'Create' ? 'Create' : 'Save');\r\n //this._popup.find('.window-header span').html(text);\r\n //const name = $('.selectColorCategory__name');\r\n //this.popupName = '';\r\n //this.popupColor = {\r\n // r: 0,\r\n // g: 0,\r\n // b: 0\r\n //};\r\n callback();\r\n //this._popup.show();\r\n //name.dxTextBox('instance').focus();\r\n\r\n //this._popup.find('.selectColorCategory-close').on('.click', () => {\r\n // self._popup.hide();\r\n //});\r\n //this._popup.on('click', (e) => {\r\n // e.stopPropagation();\r\n // if ($(e.target).hasClass('selectColorCategory-close')) {\r\n // self._popup.hide();\r\n // }\r\n //});\r\n }\r\n}\r\n\r\nmodule.exports = CategoryColor;","// window['CloseMenuOnFirstTimeOpen'] // ??!\r\n// window['FirstRequestIgnore'] // ??!\r\n// window['IsReminderSeen'] // ??! (bool)\r\n// window['ReminderClick'] // data of reminder when click (obj)\r\n// window['TakeCurrentDate'] // ??! (bool)\r\n// window['notificationShow'] - first click notification tab\r\n\r\n//#region === BASE ===\r\nfunction remindersFirstLoad() {\r\n $('.mh-reminder').off('click').on('click', () => {\r\n if (window['User'] != null) {\r\n window['CloseMenuOnFirstTimeOpen'] = false; // ???!\r\n window['notificationShow'] = false; // ?\r\n\r\n window['InstanceBase'].reminderCount(); // === show reminders and notifications counts\r\n $('.mh-reminder').tooltip('hide');\r\n\r\n // === reset active on left tab and set ative reminder tab\r\n $('.reminders-nav-link').removeClass('active');\r\n remindersMainTabs();\r\n ($('#reminders-reminder-tab') as any).tab('show');\r\n\r\n $('.reminder').addClass('show'); // === show reminders/notifications popup\r\n $('.reminder-bg').addClass('show'); // === show background under this popup\r\n //setTimeout(() => {\r\n // window['fixShowLinesDevExGrid']('.gvNotification', true);\r\n //}, 500);\r\n\r\n // === action or close reminders & notifications popup\r\n $('.reminder-close').off('click').on('click', () => {\r\n $('.reminder').removeClass('show');\r\n $('.reminder-bg').removeClass('show');\r\n delete window['notificationShow'];\r\n //window['fixShowLinesDevExGrid']('.gvNotification', false);\r\n });\r\n }\r\n });\r\n\r\n $(document).on('click', '.dx-popup-inherit-height, .reminder-calendar-dropdown', (e: any) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n });\r\n\r\n $('.reminder-bg').on('click', () => {\r\n $('.reminder-close').trigger('click');\r\n window['IsReminderSeen'] = false;\r\n })\r\n\r\n $(document).on('click', window, (event) => {\r\n if ($('#login-modal').is(':visible')) {\r\n if (!$(event.target).closest('#login-modal .modal-content-login').length && !window['logIn'])\r\n window['InstanceBase'].businesSearchSessionOver();\r\n }\r\n })\r\n\r\n\r\n //$(document).on('click', window, (event) => {\r\n // if ($('.reminder.show').is(':visible')) {\r\n // if (!$(event.target).closest('.reminder.show').length && window['IsReminderSeen']) {\r\n // if (!$('#setCallReminderModal').is(':visible') && !$('#newInfo').is(':visible') && !$('#onePropositionModal').is(':visible') && !$('.dx-popup-inherit-height').is(':visible') && !$('.dx-selectbox-popup-wrapper').is(':visible') && window['CloseMenuOnFirstTimeOpen']) {\r\n // $('.reminder-close').trigger('click');\r\n // window['IsReminderSeen'] = false;\r\n // } else {\r\n // window['IsReminderSeen'] = true;\r\n // window['CloseMenuOnFirstTimeOpen'] = true;\r\n // }\r\n // }\r\n // window['IsReminderSeen'] = true;\r\n // } else if ($('#login-modal').is(':visible')) {\r\n // if (!$(event.target).closest('#login-modal .modal-content-login').length && !window['logIn'])\r\n // window['InstanceBase'].businesSearchSessionOver();\r\n // }\r\n //});\r\n}\r\n\r\nfunction remindersMainTabs() {\r\n $('#reminders-reminder-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n remindersReminder(); // === load and show reminders content // ++\r\n })\r\n\r\n $('#reminders-notification-tab').off('show.bs.tab').on('show.bs.tab', () => {\r\n if (!window['notificationShow']) {\r\n window['notificationShow'] = true;\r\n remindersNotifications(); // === load and show notification content\r\n }\r\n })\r\n}\r\n\r\nfunction remindersNotifications() {\r\n const srcNotifications = (window['DevExpress'] as any).data.AspNet.createStore({\r\n loadMethod: 'POST',\r\n loadParams: { offset: window['userTimezone'].Offset },\r\n loadUrl: '/Reminder/NotificationsPartial',\r\n totalCount: true,\r\n onLoading: (loadOptions) => {\r\n $('.root-preloader').show();\r\n console.log('srcNotifications.OnLoading', loadOptions)\r\n },\r\n onLoaded: (result) => {\r\n $('.root-preloader').hide();\r\n console.log('srcNotifications.OnLoaded', result);\r\n },\r\n });\r\n //const srcNotifications = new window['DevExpress'].data.CustomStore({\r\n // //key: 'Id',\r\n // take: 10,\r\n // load(loadOptions) {\r\n // const deferred = $.Deferred();\r\n\r\n // const paramNames = [\r\n // 'skip', 'take',\r\n // ];\r\n\r\n // const args = {};\r\n // loadOptions.take = 10;\r\n // //loadOptions.skip = 10;\r\n\r\n // [\r\n // 'skip',\r\n // 'take',\r\n // 'filter',\r\n // ].forEach((option) => {\r\n // if (option in loadOptions && window['InstanceBase'].isNotEmpty(loadOptions[option])) {\r\n // args[option] = JSON.stringify(loadOptions[option]);\r\n // }\r\n // });\r\n\r\n // $.ajax({\r\n // url: '/Reminder/NotificationsPartial',\r\n // dataType: 'json',\r\n // data: args,\r\n // success(result) {\r\n // console.log('ressss', result);\r\n // deferred.resolve(result);\r\n // },\r\n // error() {\r\n // deferred.reject('Data Loading Error');\r\n // },\r\n // //timeout: 5000,\r\n // });\r\n\r\n // return deferred.promise();\r\n // },\r\n //});\r\n\r\n $('.gvNotification').dxDataGrid({\r\n dataSource: srcNotifications,\r\n columns: [\r\n {\r\n type: 'selection',\r\n width: 55\r\n },\r\n {\r\n dataField: 'Date',\r\n dataType: 'date',\r\n format: (date) => {\r\n const month = (date as any).getMonth() + 1,\r\n day = (date as any).getDate(),\r\n year = (date as any).getFullYear(),\r\n time = (date as any).toLocaleString([], { hour: '2-digit', minute: '2-digit' });\r\n\r\n return month + '/' + day + '/' + year + ', ' + time;\r\n },\r\n sortOrder: 'desc',\r\n width: 155,\r\n },\r\n {\r\n caption: 'Alert Type',\r\n dataField: 'Type',\r\n width: 100\r\n },\r\n {\r\n caption: 'Subject',\r\n dataField: 'Title'\r\n }\r\n ],\r\n height: 435,\r\n loadPanel: {\r\n enabled: false\r\n },\r\n onCellPrepared: e => { gvNotificationOnCellPrepared(e as any) },\r\n onContentReady: () => {\r\n //($('.gvNotification') as any).dxDataGrid('instance').resize();\r\n },\r\n onRowClick: (s) => {\r\n $('.notification-message-remove-btn').show();\r\n window['currentSelectedRow'] = undefined;\r\n window['currentSelectedRow'] = s.data.Id;\r\n $('.notification-message-content').empty().append(s.data.Message);\r\n\r\n if (s.data.IsReaded != true) {\r\n s.data.IsReaded = true;\r\n $.post('/Reminder/SetReadedNotification', { id: s.data.Id }, (data) => {\r\n $(s.rowElement.find('td')).closest('tr').addClass('invalidNotificationRowValidation');\r\n window['InstanceBase'].remindersCountRequests();\r\n });\r\n }\r\n },\r\n onRowPrepared: (e) => {\r\n if (e.data && e.rowType == 'data') {\r\n if (e.data.IsReaded == true) {\r\n $(e.rowElement.find('td')).closest('tr').addClass('invalidNotificationRowValidation');\r\n }\r\n }\r\n },\r\n onSelectionChanged: (e) => {\r\n const allSelectedRowKeys = e.selectedRowKeys;\r\n allSelectedRowKeys.length > 0 ? $('.gvNotification-moveIcons .fa-trash').css('display', 'inline-block') : $('.gvNotification-moveIcons .fa-trash').hide();\r\n },\r\n // pager: {\r\n // displayMode: 'full',\r\n // showInfo: true,\r\n // showNavigationButtons: true,\r\n // showPageSizeSelector: true,\r\n // allowedPageSizes: [10, 25, 50]\r\n // },\r\n pager: {\r\n allowedPageSizes: [10, 25, 50],\r\n displayMode: 'compact',\r\n infoText: 'Page {0} of {1} ({2} items)',\r\n showInfo: true,\r\n showNavigationButtons: true,\r\n showPageSizeSelector: true,\r\n visible: true\r\n },\r\n paging: {\r\n enabled: true,\r\n pageSize: 25\r\n },\r\n remoteOperations: {\r\n paging: true,\r\n sorting: true,\r\n filtering: true,\r\n },\r\n // remoteOperations: true,\r\n scrolling: {\r\n mode: 'standard',\r\n },\r\n //scrolling: {\r\n // columnRenderingMode: 'standard',\r\n // mode: 'standard',\r\n // preloadEnabled: false,\r\n // rowRenderingMode: 'standard',\r\n // scrollByContent: true,\r\n // scrollByThumb: false,\r\n // showScrollbar: 'onHover',\r\n // useNative: 'auto'\r\n //},\r\n selection: {\r\n allowSelectAll: true,\r\n deferred: false,\r\n mode: 'multiple',\r\n selectAllMode: 'allPages',\r\n showCheckBoxesMode: 'always'\r\n },\r\n showBorders: true,\r\n showColumnLines: true,\r\n showRowLines: true,\r\n }).dxDataGrid('instance');\r\n\r\n $('.notification-message-remove-btn').off('click').on('click', () => {\r\n if (window['currentSelectedRow']) {\r\n $.ajax({\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n url: '/Reminder/RemoveNotifications',\r\n method: 'POST',\r\n dataType: 'json',\r\n data: JSON.stringify([window['currentSelectedRow']]),\r\n success() {\r\n ($('.notification-message-remove-btn') as any).hide();\r\n ($('.gvNotification') as any).dxDataGrid('instance').refresh();\r\n $('.notification-message-content').empty();\r\n window['InstanceBase'].remindersCountRequests();\r\n }\r\n });\r\n }\r\n\r\n });\r\n\r\n $('.sourceRemoved-btn').off('click').on('click', () => {\r\n $('.notification-message-remove-btn').trigger('click');\r\n ($('#sourceRemovedModal') as any).modal('hide');\r\n })\r\n}\r\n\r\nfunction remindersReminder() {\r\n console.log('REMINDERS')\r\n // if ($('.reminder-tab .nav-link.active')[0] != undefined) { // select active tab\r\n // $('.reminder-tab .nav-link.active').trigger('click');\r\n // } else {\r\n // $($('.reminder-tab .nav-link')[0]).trigger('click');\r\n // }\r\n\r\n\r\n if (window['User'] != null) {\r\n // window['InstanceBase'].remindersCountRequests(); // add badge on reminders\r\n reminderTabClick();\r\n reminderCustomDate();\r\n reminderImportant();\r\n reminderCompleted();\r\n\r\n // === load tab \"Current\"\r\n $('.reminder-tab .nav-link').removeClass('active');\r\n ($('.reminder-tab-current') as any).tab('show');\r\n\r\n reminderHeaderActions();\r\n reminderArrows();\r\n }\r\n}\r\n//#endregion\r\n\r\n//#region === remindersNotifications ===\r\nfunction gvNotificationOnCellPrepared(a: { column: { type: string }, rowType: string, cellElement: JQuery }) {\r\n if (a.column.type == 'selection' && a.rowType == 'header') {\r\n const div = $('
    ');\r\n const del = $('');\r\n const select = a.cellElement.find('.dx-select-checkbox');\r\n\r\n del.on('click', (e) => {\r\n const removedIds = [];\r\n const gvNotification = ($('.gvNotification') as any).dxDataGrid('instance');\r\n\r\n $.each(gvNotification.getSelectedRowKeys(), function (i, v) {\r\n removedIds.push(v.Id);\r\n });\r\n\r\n $('.root-preloader').show();\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: '/Reminder/RemoveNotifications',\r\n data: JSON.stringify(removedIds),\r\n dataType: 'json',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n crossDomain: true,\r\n success: (data) => {\r\n $('.notification-message-remove-btn').hide()\r\n gvNotification.refresh();\r\n window['InstanceBase'].remindersCountRequests();\r\n $('.root-preloader').hide();\r\n },\r\n error: function () { }\r\n });\r\n // $.post('/Reminder/RemoveNotifications', { ids: removedIds }, (data) => {\r\n // $('.notification-message-remove-btn').hide()\r\n // gvNotification.refresh();\r\n // $.get('/Reminder/GetUnreadedNotificationCount', data => {\r\n // $('#ps-notification-tab .').text(data.count);\r\n // if (data.count > 0) {\r\n // $('#mainHeaderPanel .header-links .mh-settings-badge').show().text(data.count);\r\n // } else {\r\n // $('#mainHeaderPanel .header-links .mh-settings-badge').hide()\r\n // }\r\n // });\r\n // });\r\n\r\n });\r\n\r\n div.append(select).append(del);\r\n div.on('dxclick', e => {\r\n e.stopPropagation();\r\n });\r\n a.cellElement.append(div);\r\n ($('[data-bs-toggle=\"tooltip\"]') as any).tooltip('enable');\r\n }\r\n}\r\n//#endregion\r\n\r\n//#region === remindersReminder ===\r\nfunction reminderArrows() {\r\n $('.reminder-arrow').off('click').on('click', (e) => {\r\n const isLeft = $(e.target).hasClass('reminder-arrow-left');\r\n\r\n const type = $('.reminder-tab .nav-link.active').data('type');\r\n let datesObj, tempDate;\r\n switch (type) {\r\n case 'Month':\r\n datesObj = $('.reminder-content-header-period-text').text().split(' - ');\r\n tempDate = window['moment'](datesObj[isLeft ? 0 : 1]).add(isLeft ? -1 : 1, 'day');\r\n reminderRangeInfo(tempDate.startOf('month').format('LL') + ' - ' + tempDate.endOf('month').format('LL'), false, true);\r\n break;\r\n case 'Week':\r\n datesObj = $('.reminder-content-header-period-text').text().split(' - ');\r\n tempDate = window['moment'](datesObj[isLeft ? 0 : 1]).add(isLeft ? -1 : 1, 'day');\r\n reminderRangeInfo(tempDate.startOf('week').format('LL') + ' - ' + tempDate.endOf('week').format('LL'), false, true);\r\n break;\r\n case 'Year':\r\n datesObj = $('.reminder-content-header-period-text').text();\r\n const year = +datesObj + (isLeft ? -1 : 1);\r\n reminderRangeInfo(year, false, true);\r\n tempDate = window['moment'](`${year}-01-01T00:00:00`);\r\n break;\r\n }\r\n window['InstanceBase'].getListOfReminders(type, tempDate.startOf(type).add(-window['userTimezone'].Offset, 'hours').format().slice(0, -6) + 'Z', tempDate.endOf(type).add(-window['userTimezone'].Offset, 'hours').format().slice(0, -6) + 'Z');\r\n })\r\n}\r\n\r\n//function reminderChangeViewDay(backDirection: boolean, data) {\r\n// const curentDate = ($('.devExReminderCalendar') as any).dxDateBox('instance').option('value');\r\n// const date = new Date(curentDate);\r\n// const result = new Date(date.setDate(backDirection ? date.getDate() - 1 : date.getDate() + 1));\r\n// //result = t.addMinutes(result, (-1 * new Date().getTimezoneOffset()));\r\n\r\n// // reminderTabClickDefaultActions('Day', result);\r\n\r\n// // t.reminderCount();\r\n\r\n// // if (!data)\r\n// // ($('.devExReminderCalendar') as any).dxCalendar('instance').option('value', result);\r\n\r\n// // window['InstanceBase'].getListOfReminders('Day', result);\r\n// ($('.devExReminderCalendar') as any).dxDateBox('instance').option('value', result);\r\n//}\r\n\r\n//function reminderChangeViewMonth(backDirection: boolean, type) {\r\n// const curentDate = $('.reminder-content-header-period-text').text();\r\n\r\n// const date = new Date(curentDate.split('-')[0])\r\n// date.setDate(1);\r\n// const result = new Date(date.setMonth(backDirection ? date.getMonth() - 1 : date.getMonth() + 1));\r\n// // result = window['InstanceBase'].addMinutes(result, (-1 * new Date().getTimezoneOffset()));\r\n\r\n// reminderTabClickDefaultActions(type, result);\r\n\r\n// // t.reminderCount();\r\n// window['InstanceBase'].getListOfReminders(type, result);\r\n//}\r\n\r\n//function reminderChangeViewWeek(backDirection: boolean, type) {\r\n// const curentDate = $('.reminder-content-header-period-text').text();\r\n\r\n// const date = new Date(curentDate.split('-')[0])\r\n// //date.setDate(date.getDate() - (date.getDay()));\r\n// const result = new Date(date.setDate(backDirection ? date.getDate() - 6 : date.getDate() + 8));\r\n// // result = window['InstanceBase'].addMinutes(result, (-1 * new Date().getTimezoneOffset()));\r\n\r\n// window['InstanceBase'].getListOfReminders(type, result);\r\n// reminderTabClickDefaultActions(type, result);\r\n\r\n// // t.reminderCount();\r\n//}\r\n\r\n//function reminderChangeViewYear(backDirection: boolean, type) {\r\n// const curentDate = $('.reminder-content-header-period-text').text();\r\n// const date = new Date(+curentDate, 0, 1);\r\n\r\n// const result = new Date(date.setFullYear(backDirection ? date.getFullYear() - 1 : date.getFullYear() + 1));\r\n// // result = window['InstanceBase'].addMinutes(result, (-1 * new Date().getTimezoneOffset()));\r\n\r\n// reminderTabClickDefaultActions(type, result);\r\n\r\n// // t.reminderCount();\r\n// window['InstanceBase'].getListOfReminders(type, result);\r\n//}\r\n\r\nfunction reminderCheckCalendarDay(day) {\r\n window['FirstRequestIgnore'] = false;\r\n\r\n // window['InstanceBase'].reminderCount();\r\n let startDate = window['moment'](day).add(-window['userTimezone'].Offset, 'hours').format().slice(0, -6) + 'Z';\r\n let endDate = window['moment'](startDate).add(24, 'hours').add(-1, 'second').utc().format();\r\n window['InstanceBase'].getListOfReminders('Day', startDate, endDate);\r\n // window['InstanceBase'].getListOfRemindersByDay();\r\n\r\n // const dateText = window['InstanceBase'].convertDateInType(day, 'Day');\r\n reminderRangeInfo('', true);\r\n}\r\n\r\nfunction reminderCompleted() {\r\n //$('#reminder-completed').off('click').on('click', () => { // set completed\r\n // $('[data-bs-toggle=\"tooltip\"]').tooltip('hide');\r\n // window['InstanceBase'].refreshReminderRows();\r\n //});\r\n ($('.reminder-completed') as any).dxCheckBox({\r\n elementAttr: {\r\n 'aria-label': 'Filter by Completed',\r\n },\r\n iconSize: 16,\r\n onValueChanged(data) {\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip('hide');\r\n window['InstanceBase'].refreshReminderRows();\r\n },\r\n text: 'Completed',\r\n value: false,\r\n });\r\n}\r\n\r\nfunction reminderCustomDate() {\r\n $('.calendar-tab').off('shown.bs.dropdown').on('shown.bs.dropdown', (e) => {\r\n reminderCustomDateFrom();\r\n reminderCustomDateTo();\r\n\r\n $('.btn-customReminderCalendar').off('click').on('click', () => {\r\n reminderCustomDateResult();\r\n reminderRangeDropdownArrows(false);\r\n });\r\n })\r\n\r\n $('.calendar-tab').off('hidden.bs.dropdown').on('hidden.bs.dropdown', (e) => {\r\n try {\r\n ($('.devExReminderCalendarFrom') as any).dxDateBox('instance').dispose();\r\n ($('.devExReminderCalendarTo') as any).dxDateBox('instance').dispose();\r\n } catch (ex) { }\r\n })\r\n\r\n //$('.calendar-tab').off('hide.bs.dropdown').on('hide.bs.dropdown', (e) => { // disable hide Custom dropdown if select calendar\r\n // if ($('.devExReminderCalendarFrom').hasClass('dx-dropdowneditor-active') || $('.devExReminderCalendarTo').hasClass('dx-dropdowneditor-active')) {\r\n // e.preventDefault();\r\n // }\r\n //})\r\n}\r\n\r\nfunction reminderCustomDateFrom() {\r\n ($('.devExReminderCalendarFrom') as any).dxDateBox({\r\n label: 'From',\r\n labelMode: 'static',\r\n onValueChanged: (e) => {\r\n console.log('daaa', e.value);\r\n ($('.devExReminderCalendarTo') as any).dxDateBox('instance').option('value', e.value);\r\n ($('.devExReminderCalendarTo') as any).dxDateBox('instance').option('min', e.value);\r\n //reminderCustomDateTo();\r\n },\r\n pickerType: 'date',\r\n value: window['moment'](new Date()).utcOffset(window['userTimezone'].Offset).format('L'),\r\n width: '100%',\r\n });\r\n}\r\n\r\nfunction reminderCustomDateResult() {\r\n const type = 'FromTo';\r\n\r\n const fromValue = ($('.devExReminderCalendarFrom') as any).dxDateBox('instance').option('value');\r\n const toValue = ($('.devExReminderCalendarTo') as any).dxDateBox('instance').option('value');\r\n const fromDate = window['moment'](fromValue).add(-window['userTimezone'].Offset, 'hours').format().slice(0, -6) + 'Z';\r\n const toDate = window['moment'](toValue).add(24 - window['userTimezone'].Offset, 'hours').add(-1, 'second').format().slice(0, -6) + 'Z';\r\n\r\n window['InstanceBase'].getListOfReminders(type, fromDate, toDate);\r\n reminderRangeDropdown('Custom');\r\n reminderRangeInfo(window['InstanceBase'].getStartRangeWithTimezone(fromDate, type, 'LL') + ' - ' + window['InstanceBase'].getEndRangeWithTimezone(toDate, type, 'LL'));\r\n\r\n $('.reminder-tab .nav-link').removeClass('active');\r\n $('.reminder-tab-custom').addClass('active');\r\n ($('.reminder-tab-custom') as any).dropdown('hide');\r\n\r\n //const type = 'FromTo';\r\n\r\n //const fromValue = ($('.devExReminderCalendarFrom') as any).dxDateBox('instance').option('value');\r\n //const toValue = ($('.devExReminderCalendarTo') as any).dxDateBox('instance').option('value');\r\n //const from = new Date(fromValue.getFullYear(), fromValue.getMonth(), fromValue.getDate(), 0, 0, 0);\r\n //const to = new Date(toValue.getFullYear(), toValue.getMonth(), toValue.getDate(), 23, 59, 59);\r\n\r\n //// if (to.getMonth() == from.getMonth() && to.getDay() == from.getDay() && (to as any).getYear() == (from as any).getYear()) { }\r\n //// else {\r\n //$('.reminder-tab a').removeClass('active');\r\n //// window['InstanceBase'].reminderCount();\r\n //window['InstanceBase'].getListOfReminders(type, from, to);\r\n //// window['InstanceBase'].getListOfRemindersByDay();\r\n\r\n //reminderRangeDropdown(type);\r\n //reminderTabClickDefaultActions(type);\r\n\r\n //($('.reminder-tab .calendar-tab .nav-link') as any).dropdown('hide');\r\n //$('.reminder-tab .calendar-tab .nav-link').addClass('active');\r\n //// }\r\n}\r\n\r\nfunction reminderCustomDateTo() {\r\n //const startTimeMeetingDay = Date.parse(($('.devExReminderCalendarFrom') as any).dxDateBox('instance').option('value')); // fix date\r\n ($('.devExReminderCalendarTo') as any).dxDateBox({\r\n label: 'To',\r\n labelMode: 'static',\r\n min: window['moment'](new Date()).utcOffset(window['userTimezone'].Offset).format('L'),\r\n pickerType: 'date',\r\n //value: new Date(startTimeMeetingDay),\r\n value: window['moment'](new Date()).utcOffset(window['userTimezone'].Offset).format('L'),\r\n width: '100%',\r\n });\r\n}\r\n\r\nfunction reminderDayCalendar(date = null) {\r\n const zoomLevels = ['month', 'year', 'decade', 'century'];\r\n try {\r\n ($('.devExReminderCalendar') as any).dxDateBox('instance').dispose();\r\n } catch (e) { }\r\n\r\n ($('.devExReminderCalendar') as any).dxDateBox({\r\n calendarOptions: {\r\n firstDayOfWeek: 1,\r\n },\r\n disabled: false,\r\n displayFormat: 'dd MMMM yyyy, EEEE',\r\n onContentReady: (e) => {\r\n e.component.option('value', window['moment'](date).utcOffset(window['userTimezone'].Offset).format('L'));\r\n },\r\n onValueChanged: (data) => {\r\n //console.log('vallala', data);\r\n window['FirstRequestIgnore'] = true;\r\n // $('.reminder a[data-type=\"Day\"]').trigger('click', { next: false })\r\n reminderCheckCalendarDay(data.value);\r\n },\r\n pickerType: 'date',\r\n //value: date,\r\n width: 225,\r\n zoomLevel: zoomLevels[0],\r\n });\r\n}\r\n\r\nfunction reminderDeleteReminders() {\r\n const objModal = {\r\n callback: reminderDeleteRemindersCallback,\r\n classYesBtn: 'removeManyReminders',\r\n textModal: 'Are you sure to delete this items from the Reminder list?',\r\n textNoBtn: 'Cancel',\r\n textYesBtn: 'Yes',\r\n titleModal: 'Remove Reminder',\r\n }\r\n window['InstanceBase'].onePropositionModalLoad(objModal);\r\n //window['InstanceBase'].onePropositionModalLoad('Remove Reminder', 'Are you sure to delete this items from the Reminder list?', true, 'Yes', true, 'Cancel', 'removeManyReminders', reminderDeleteRemindersCallback)\r\n\r\n function reminderDeleteRemindersCallback() {\r\n $('.root-preloader').show();\r\n const checkedCheckboxesMsg = $('.reminder-msg-section').find('.newMsg-select:checked').closest('.newMsg');\r\n const idArr = [];\r\n\r\n for (let i = 0; i < checkedCheckboxesMsg.length; i++) {\r\n const msgId = $(checkedCheckboxesMsg[i]).attr('data-id');\r\n idArr.push(msgId);\r\n }\r\n $.post('/Reminder/ActionReminders', {\r\n actions: 'Deleted',\r\n ids: idArr\r\n }, () => {\r\n window['InstanceBase'].refreshReminderRows();\r\n window['InstanceBase'].getListOfRemindersByDay();\r\n $('.root-preloader').hide();\r\n });\r\n }\r\n}\r\n\r\nfunction reminderHeaderActions() {\r\n //$('.dropdown-day').off('click').on('click', e => { // Select Day if type = Day\r\n // ($('.devExReminderCalendar') as any).dxDateBox('instance')._refreshViews();\r\n //});\r\n\r\n //$('.reminder-today').off('click').on('click', () => { // set today (= Day)\r\n // $('.reminder-container a[data-type=\"Day\"]').trigger('click')\r\n //})\r\n\r\n //$('.reminder-calendar-small .fa-chevron-left').off('click').on('click', (e, data) => { // \r\n // const type = $('.reminder-dateList-dropdown-menu .dropdown-item.active').data('type');\r\n // window['TakeCurrentDate'] = true;\r\n\r\n // switch (type) {\r\n // case 'Day':\r\n // reminderChangeViewDay(true, data);\r\n // break;\r\n // case 'Week':\r\n // reminderChangeViewWeek(true, type);\r\n // break;\r\n // case 'Month':\r\n // reminderChangeViewMonth(true, type);\r\n // break;\r\n // case 'Year':\r\n // reminderChangeViewYear(true, type);\r\n // break;\r\n // }\r\n // //t.getListOfRemindersByDay();\r\n // window['TakeCurrentDate'] = false;\r\n //});\r\n\r\n //$('.reminder-calendar-small .fa-chevron-right').off('click').on('click', (e, data) => {\r\n // const type = $('.reminder-dateList-dropdown-menu .dropdown-item.active').data('type')\r\n // window['TakeCurrentDate'] = true;\r\n // $('.dropdown-day').hide();\r\n\r\n // switch (type) {\r\n // case 'Day':\r\n // reminderChangeViewDay(false, data);\r\n // break;\r\n // case 'Week':\r\n // reminderChangeViewWeek(false, type);\r\n // break;\r\n // case 'Month':\r\n // reminderChangeViewMonth(false, type);\r\n // break;\r\n // case 'Year':\r\n // reminderChangeViewYear(false, type);\r\n // break;\r\n // }\r\n // //t.getListOfRemindersByDay();\r\n // window['TakeCurrentDate'] = false;\r\n //});\r\n\r\n //$('.reminder-dateList-dropdown-menu .dropdown-item').off('click').on('click', (e, data) => {\r\n // //e.stopPropagation();\r\n // const type = $(e.currentTarget).data('type');\r\n\r\n // // if (type == 'Day' && !data)\r\n // // ($('.devExReminderCalendar') as any).dxCalendar('instance').option('value', new Date());\r\n\r\n // $('.reminder-dateList-dropdown-menu a').removeClass('active');\r\n // $(e.currentTarget).addClass('active');\r\n // $('#reminder-dateList-btn').text(type);\r\n // $(`.reminder a.nav-link[data-type=\"${type}\"]`).trigger('click', { next: false });\r\n //});\r\n\r\n $('.reminder-selectAll').off('change').on('change', () => {\r\n const allCheckboxes = $('.reminder-msg-section').find('.newMsg-select');\r\n if ($('.reminder-selectAll').is(':checked')) {\r\n let isAllImportant = true;\r\n let isAllCompleted = true;\r\n for (let i = 0; i < allCheckboxes.length; i++) {\r\n $(allCheckboxes[i]).prop('checked', true);\r\n\r\n const isImportantIcon = $(allCheckboxes[i]).closest('.newMsg').find('.icon-important');\r\n const isCompletedIcon = $(allCheckboxes[i]).closest('.newMsg').find('.icon-completed');\r\n if (!isImportantIcon.length) isAllImportant = false;\r\n if (!isCompletedIcon.length) isAllCompleted = false;\r\n }\r\n window['InstanceBase'].reminderChangeTextOnMarksBtns(isAllImportant, isAllCompleted);\r\n $('.reminder-mark-btn').prop('disabled', false);\r\n } else {\r\n for (let i = 0; i < allCheckboxes.length; i++) {\r\n $(allCheckboxes[i]).prop('checked', false);\r\n }\r\n window['InstanceBase'].reminderChangeTextOnMarksBtns(false, false);\r\n $('.reminder-mark-btn').prop('disabled', true);\r\n }\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip('hide');\r\n });\r\n\r\n $('.reminder-markImportant').off('click').on('click', () => {\r\n reminderSetImportant();\r\n });\r\n\r\n $('.reminder-markCompleted').off('click').on('click', () => {\r\n reminderSetCompleted();\r\n });\r\n\r\n $('.reminder-markDelete').off('click').on('click', () => {\r\n reminderDeleteReminders();\r\n });\r\n}\r\n\r\nfunction reminderImportant() {\r\n //$('#reminder-important').off('click').on('click', () => { // set important\r\n // $('[data-bs-toggle=\"tooltip\"]').tooltip('hide');\r\n // window['InstanceBase'].refreshReminderRows();\r\n //});\r\n ($('.reminder-important') as any).dxCheckBox({\r\n elementAttr: {\r\n 'aria-label': 'Filter by Important',\r\n },\r\n iconSize: 16,\r\n onValueChanged(data) {\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip('hide');\r\n window['InstanceBase'].refreshReminderRows();\r\n },\r\n text: 'Important',\r\n value: false,\r\n });\r\n}\r\n\r\n//function reminderOneTitleDateGenerator(text) {\r\n// $('.reminder-content .oneTitleReminder').show().text(text);\r\n// $('.reminder-content .twoTitleReminder').hide();\r\n//}\r\n\r\n/**\r\n * function reminderRangeDropdown(type)\r\n * change active item on range days dropdown\r\n * @param type = Current, Day, Month, Week, Year\r\n */\r\nfunction reminderRangeDropdown(type) {\r\n // t.getListOfRemindersByDay();\r\n\r\n $('.reminder-dateList-dropdown-menu-item').removeClass('active'); // === remove active type\r\n $(`.reminder-dateList-dropdown-menu-item[data-type=\"${type}\"]`).addClass('active'); // === set active type\r\n $('#reminder-dateList-btn').text(type); // === show on top active type\r\n\r\n (type == 'Current' || type == 'All') ? reminderRangeDropdownArrows(false) : reminderRangeDropdownArrows(true);\r\n\r\n // $('.dropdown-day').hide(); // hide calendar from type == day\r\n}\r\n\r\n/**\r\n * function reminderRangeDropdownArrows(active)\r\n * active/not active arrows on right dropdown\r\n * @param active - boolean\r\n */\r\nfunction reminderRangeDropdownArrows(active: boolean) {\r\n active ? $('.reminder-arrow').addClass('active') : $('.reminder-arrow').removeClass('active');\r\n}\r\n\r\nfunction reminderRangeInfo(text, showCalendar = false, showArrows = false) {\r\n if (showCalendar) {\r\n $('.reminder-content-header-period-text').hide();\r\n $('.devExReminderCalendar').show();\r\n } else {\r\n $('.devExReminderCalendar').hide();\r\n $('.reminder-content-header-period-text').text(text).show();\r\n }\r\n\r\n showArrows ? $('.reminder-arrow-col').show() : $('.reminder-arrow-col').hide();\r\n}\r\n\r\nfunction reminderSetCompleted() {\r\n $('.root-preloader').show();\r\n const checkedCheckboxesMsg = $('.reminder-msg-section').find('.newMsg-select:checked').closest('.newMsg');\r\n const iconsCompleted = $(checkedCheckboxesMsg).find('.icon-completed');\r\n const idArr = [];\r\n if (iconsCompleted.length === checkedCheckboxesMsg.length) {\r\n for (let i = 0; i < iconsCompleted.length; i++) {\r\n idArr.push($(checkedCheckboxesMsg[i]).attr('data-id'));\r\n $(checkedCheckboxesMsg[i]).removeClass('newMsg-completed');\r\n iconsCompleted[i].remove();\r\n }\r\n $.post('/Reminder/ActionReminders', {\r\n actions: 'unCompleted',\r\n ids: idArr\r\n }, () => {\r\n window['InstanceBase'].refreshReminderRows();\r\n window['InstanceBase'].reminderChangeTextOnMarksBtns(false, false);\r\n window['InstanceBase'].getListOfRemindersByDay();\r\n $('.root-preloader').hide();\r\n });\r\n } else {\r\n for (let i = 0; i < checkedCheckboxesMsg.length; i++) {\r\n const icon = $(checkedCheckboxesMsg[i]).find('.newMsg-icon');\r\n if (!$($(icon).find('.icon-completed')).length) {\r\n idArr.push($(checkedCheckboxesMsg[i]).attr('data-id'));\r\n $(checkedCheckboxesMsg[i]).addClass('newMsg-completed');\r\n $(icon).prepend('');\r\n }\r\n }\r\n\r\n $.post('/Reminder/ActionReminders', {\r\n actions: 'Completed',\r\n ids: idArr\r\n }, () => {\r\n window['InstanceBase'].refreshReminderRows();\r\n window['InstanceBase'].reminderChangeTextOnMarksBtns(false, false);\r\n window['InstanceBase'].getListOfRemindersByDay();\r\n $('.root-preloader').hide();\r\n });\r\n }\r\n}\r\n\r\nfunction reminderSetImportant() {\r\n $('.root-preloader').show();\r\n const checkedCheckboxesMsg = $('.reminder-msg-section').find('.newMsg-select:checked').closest('.newMsg');\r\n const iconsImportant = $(checkedCheckboxesMsg).find('.icon-important');\r\n const idArr = [];\r\n if (iconsImportant.length === checkedCheckboxesMsg.length) {\r\n for (let i = 0; i < iconsImportant.length; i++) {\r\n idArr.push($(checkedCheckboxesMsg[i]).attr('data-id'));\r\n iconsImportant[i].remove();\r\n }\r\n $.post('/Reminder/ActionReminders', {\r\n actions: 'unImportant',\r\n ids: idArr\r\n }, () => {\r\n window['InstanceBase'].refreshReminderRows();\r\n window['InstanceBase'].reminderChangeTextOnMarksBtns(false, false);\r\n $('.root-preloader').hide();\r\n });\r\n } else {\r\n for (let i = 0; i < checkedCheckboxesMsg.length; i++) {\r\n const icon = $(checkedCheckboxesMsg[i]).find('.newMsg-icon');\r\n if (!$($(icon).find('.icon-important')).length) {\r\n idArr.push($(checkedCheckboxesMsg[i]).attr('data-id'));\r\n $(icon).append('');\r\n }\r\n }\r\n\r\n $.post('/Reminder/ActionReminders', {\r\n actions: 'Important',\r\n ids: idArr\r\n }, (data) => {\r\n window['InstanceBase'].refreshReminderRows();\r\n window['InstanceBase'].reminderChangeTextOnMarksBtns(false, false);\r\n $('.root-preloader').hide();\r\n });\r\n }\r\n}\r\n\r\nfunction reminderShowDataWeekMonth(type, date) {\r\n window['InstanceBase'].getListOfReminders(type, window['InstanceBase'].getUtcStartRangeWithTimezone(date, type), window['InstanceBase'].getUtcEndRangeWithTimezone(date, type));\r\n reminderRangeInfo(window['InstanceBase'].getStartRangeWithTimezone(date, type, 'LL') + ' - ' + window['InstanceBase'].getEndRangeWithTimezone(date, type, 'LL'), false, true);\r\n}\r\n\r\nfunction reminderShowDataYear(type, date) {\r\n window['InstanceBase'].getListOfReminders(type, window['InstanceBase'].getUtcStartRangeWithTimezone(date, type), window['InstanceBase'].getUtcEndRangeWithTimezone(date, type));\r\n reminderRangeInfo(window['InstanceBase'].getStartRangeWithTimezone(date, type, 'YYYY'), false, true);\r\n}\r\n\r\nfunction reminderTabClick() { // +-\r\n $('.reminder-tab .nav-link').off('show.bs.tab').on('show.bs.tab', (e) => {\r\n ($('.reminder-tab-custom') as any).dropdown('hide'); // === hide custom date dropdown\r\n\r\n const type = $(e.target).attr('data-type');\r\n //try { // ?\r\n // ($('.devExReminderCalendarFrom') as any).dxDateBox('instance').option('value', new Date());\r\n //} catch (e) { }\r\n\r\n // window['InstanceBase'].reminderCount();\r\n\r\n //let date, result;\r\n\r\n switch (type) {\r\n case 'Current':\r\n window['InstanceBase'].getListOfReminders(type, null, window['InstanceBase'].getUtcEndRangeWithTimezone(new Date(), 'Day')); // content\r\n //reminderRangeDropdown(type); // dropdown on right header\r\n reminderRangeInfo('Active Notifications'); // left header\r\n\r\n //date = new Date();\r\n //window['InstanceBase'].getListOfReminders(type, new Date(date.getFullYear(), date.getMonth(), date.getDate())); // add reminder content\r\n break;\r\n\r\n case 'Day':\r\n reminderDayCalendar(window['moment'](new Date()).utc().format()); // === show dropdown with calendar\r\n //reminderRangeDropdown(type);\r\n reminderRangeInfo('', true, false);\r\n\r\n //reminderDayCalendar(new Date()); // old 2024-01-15\r\n ////if (!data)\r\n ////($('.devExReminderCalendar') as any).dxDateBox('instance').option('value', new Date());\r\n\r\n // reminderTabClickDefaultActions(type);\r\n\r\n // if (window['OneTimeRefresh'] != false) {\r\n // $('.dropdown-day').show();\r\n // }\r\n break;\r\n\r\n case 'Month':\r\n reminderShowDataWeekMonth(type, new Date())\r\n\r\n //reminderRangeDropdown(type);\r\n //// curentDate = $('.reminder-content-header-period-text').text();\r\n //// date = new Date(curentDate.split('-')[0])\r\n\r\n //date = new Date();\r\n //// var result = new Date(date.setMonth(date.getMonth()));\r\n //// result = new Date(date.setMonth(date.getMonth()));\r\n //result = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n //result = window['InstanceBase'].addMinutes(result, (-1 * window['userTimezone'].Offset));\r\n //// result = t.addMinutes(result, (-1 * new Date().getTimezoneOffset()));\r\n\r\n //// window['InstanceBase'].reminderCount();\r\n //window['InstanceBase'].getListOfReminders(type, result);\r\n //reminderTabClickDefaultActions(type);\r\n break;\r\n\r\n case 'Week':\r\n reminderShowDataWeekMonth(type, new Date());\r\n\r\n //date = new Date();\r\n //// date = window['InstanceBase'].addMinutes(date, (-1 * new Date().getTimezoneOffset()));\r\n //window['InstanceBase'].getListOfReminders(type, new Date(date.getFullYear(), date.getMonth(), date.getDate())); // add reminder content // old 2024-01-18\r\n //reminderTabClickDefaultActions(type);\r\n break;\r\n\r\n case 'Year':\r\n reminderShowDataYear(type, new Date());\r\n\r\n //reminderRangeDropdown(type);\r\n //reminderTabClickDefaultActions(type);\r\n\r\n //// curentDate = $('.reminder-content-header-period-text').text();\r\n //date = new Date();\r\n\r\n //// result = new Date(date.setFullYear(date.getFullYear()));\r\n //result = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n //result = window['InstanceBase'].addMinutes(result, (-1 * window['userTimezone'].Offset));\r\n\r\n //// window['InstanceBase'].reminderCount();\r\n //window['InstanceBase'].getListOfReminders(type, result);\r\n //reminderRangeDropdownArrows(true);\r\n break;\r\n\r\n\r\n\r\n\r\n //case 'All':\r\n // //($('.devExReminderCalendarFrom') as any).dxDateBox('instance').option('value', new Date());\r\n // reminderCustomDateFrom();\r\n // // reminderCustomDateTo();\r\n // $('.btn-customReminderCalendar').off('click').on('click', () => {\r\n // reminderCustomDateResult();\r\n // reminderRangeDropdownArrows(false);\r\n // });\r\n // break;\r\n }\r\n })\r\n}\r\n\r\n//function reminderTabClickDefaultActions(type, date = new Date()) {\r\n// const dateText = window['InstanceBase'].convertDateInType(date, type);\r\n// reminderRangeInfo(dateText);\r\n// //window['OneTimeRefresh'] = true\r\n//}\r\n//#endregion\r\n\r\n\r\nmodule.exports = { load: () => { remindersFirstLoad(); } };","/* eslint-disable @typescript-eslint/no-namespace */\r\n/*\r\nwindow['CallHub']\r\nwindow['CallMonitoring']\r\nwindow['crmCardVars'].ActiveStatusId - Lead Status selected\r\nwindow['sendkey']\r\n*/\r\n\r\nimport * as dialerUpdate from './dialerUpdate';\r\n\r\nnamespace MyTwilio {\r\n import Min = Mocha.reporters.Min;\r\n const debug = require('./debug');\r\n const Logger = debug('Twilio');\r\n Logger.enabled = true;\r\n Logger.log = console.info;\r\n\r\n let CTwilio = null;\r\n\r\n\r\n export class MyTwilio {\r\n CallStatus: { Status: string }\r\n CheckMicro: boolean\r\n CheckTime: Function\r\n Connection: any\r\n CurrentConn: any[] = [];\r\n Device: any\r\n IsRecStarted: boolean\r\n LastSID: string\r\n LastConnection: any\r\n TimerId = -1\r\n TimerStart: number\r\n Token: string\r\n WasGeneratedToken: boolean\r\n\r\n constructor() {\r\n if (CTwilio != null) throw 'Error One Instance!'\r\n CTwilio = this;\r\n const self = this;\r\n //if (window['mmm'])\r\n // window['mmm'].push(self);\r\n //else window['mmm'] = [self];\r\n if (window['CallHub']) {\r\n self.Connection = window['CallHub'];\r\n self.updateCallStatus('Ready');\r\n }\r\n else {\r\n this.Connection = new window['signalR'].HubConnectionBuilder().withUrl('/callhub').build();\r\n window['CallHub'] = this.Connection;\r\n this.Connection.on('Log', console.log);\r\n this.Connection.on('Minutes', (minutes) => {\r\n window['User'].Minutes = minutes;\r\n $('a.dialerMinutes span.count').html(minutes.toLocaleString('en-US'));\r\n });\r\n this.Connection.on('Info', () => {\r\n if (window['CallMonitoring']) {\r\n window['CallMonitoring'].loadData();\r\n }\r\n });\r\n this.Token = null;\r\n this.CheckTime = () => {\r\n self.SetCheckTime();\r\n }\r\n\r\n self.Check((b, stream) => {\r\n if (b == true && stream != null) {\r\n self.Ready();\r\n }\r\n else {\r\n self.updateCallStatus('Not found microphone!');\r\n Logger({ status: 'Error', device: self.Device, err: 'Not found microphone!' });\r\n }\r\n });\r\n }\r\n }\r\n\r\n static get Instance() {\r\n if (CTwilio == null) CTwilio = new MyTwilio();\r\n return CTwilio;\r\n }\r\n\r\n actionsWithDevice() {\r\n const self = this;\r\n\r\n self.DeviceConnect();\r\n self.DeviceDisconnect();\r\n self.DeviceError();\r\n self.DeviceIncomming();\r\n self.DeviceOffline();\r\n self.DeviceReady();\r\n }\r\n\r\n Ready() {\r\n const self = this;\r\n self.Connection.start().then(function () {\r\n self.GenerateToken((data: any) => {\r\n Logger('GenerateToken', data);\r\n self.Device = new window['Twilio'].Device(data.Keys?.Token);\r\n self.actionsWithDevice();\r\n });\r\n }, function (err) {\r\n Logger('Error', err);\r\n })\r\n if (window['Twilio'] == undefined) {\r\n Logger('Twilio JS?')\r\n return;\r\n }\r\n // $('#liveIncomming .liveIncomming-end').on('click', function () {\r\n // self.CurrentConn.forEach(c => {\r\n // c.reject();\r\n // })\r\n // self.CurrentConn = [];\r\n // self.Device.disconnectAll();\r\n // ($('#liveIncomming') as any).modal('hide');\r\n // $('#liveIncomming .liveIncomming-start').hide();\r\n // $('#liveIncomming .liveIncomming-start').on('click', function () {\r\n // self.CurrentConn.forEach(c => {\r\n // c.accept();\r\n // });\r\n // //window.parent.device.currentConn.accept();\r\n // console.log(this);\r\n // });\r\n // });\r\n }\r\n\r\n Call() {\r\n const self = this;\r\n self.Check((b, stream) => {\r\n if (b == true && stream != null) {\r\n const to = $('.devEx-dialer-toNumber').dxTextBox('instance').option('value');\r\n const from = $('.devEx-dialer-fromNumber').dxSelectBox('instance').option('value');\r\n // $('.dialer-fromNumber-empty-btn').val(from); // External User?\r\n this.CallCustomer(from, to);\r\n } else {\r\n dialerUpdate.dialerCallBtns(false);\r\n // $('.dialer-callBtn.caller').attr('disabled', 'disabled');\r\n self.updateCallStatus('Not found microphone!');\r\n }\r\n })\r\n }\r\n\r\n CallCustomer(fromNumber, toNumber) {\r\n const self = this;\r\n Logger(`Calling ${fromNumber} => ${toNumber}`);\r\n self.updateCallStatus(`Calling ${toNumber}...`);\r\n const params = {\r\n From: fromNumber,\r\n tocall: toNumber,\r\n Bid: window['leadId'],\r\n //Type: window['LeadType']\r\n };\r\n // $('#fromNumber').text(fromNumber); /// wtf?\r\n console.log('THIS', this, '\\nthis.Device', this.Device, '\\nparams', params);\r\n const aCall = self.Device.connect(params);\r\n self.Connection.invoke('Call', toNumber);\r\n\r\n dialerUpdate.dialerCallBtns(false);\r\n dialerUpdate.onCallRecord();\r\n if (window['crm_data']) dialerUpdate.callCustomerOnCRMCard();\r\n\r\n self.LastSID = aCall.parameters.CallSid;\r\n self.LastConnection = aCall.parameters;\r\n self.Recording = true;\r\n self.Pause = false;\r\n }\r\n _rec = false;\r\n _pause: boolean | null = null;\r\n\r\n get Recording(): boolean {\r\n return this._rec;\r\n }\r\n\r\n set Recording(rec: boolean) {\r\n const recBtn = $('.rec-btn');\r\n const t = this;\r\n const circle = $('#recordCall .rec-btn .fa-circle');\r\n const stop = $('#recordCall .rec-btn .fa-stop');\r\n if (rec) {\r\n recBtn.addClass('rec-btn-anim');\r\n stop.show();\r\n circle.hide();\r\n recBtn.off('click').on('click', () => {\r\n dialerUpdate.recordAnimation();\r\n\r\n t.StopRecord(console.log);\r\n })\r\n }\r\n else {\r\n recBtn.removeClass('rec-btn-anim');\r\n stop.hide();\r\n circle.show();\r\n recBtn.off('click').on('click', () => {\r\n dialerUpdate.recordAnimation();\r\n\r\n t.StartRecord(console.log);\r\n })\r\n }\r\n this._rec = rec\r\n }\r\n\r\n _initPause = true\r\n get Pause(): boolean | null {\r\n return this._pause;\r\n }\r\n\r\n set Pause(pause: boolean | null) {\r\n const self = this;\r\n const parent = '.dialer-btn.records-btn.play-btn';\r\n const p = $(parent);\r\n const pl = $(parent + ' i.fa-play');\r\n const ps = $(parent + ' i.fa-pause');\r\n const pt = $(parent + ' i.rec-play');\r\n\r\n p.off('click');\r\n\r\n if (pause === null) {\r\n pl.show();\r\n ps.hide();\r\n pt.text('Play');\r\n p.attr('disabled', 'disabled');\r\n $('#recordCallAudioContainer').html('');\r\n self._initPause = true;\r\n }\r\n else if (pause) {\r\n pl.hide();\r\n ps.show();\r\n pt.text('Pause');\r\n p.removeAttr('disabled');\r\n\r\n p.on('click', () => {\r\n\r\n self.Pause = false;\r\n try {\r\n ($('#recordCallAudioContainer audio')[0] as any).pause()\r\n }\r\n catch (ex) { }\r\n });\r\n }\r\n else {\r\n pl.show();\r\n ps.hide();\r\n pt.text('Play');\r\n p.removeAttr('disabled');\r\n p.on('click', () => {\r\n self.Pause = true;\r\n if (self._initPause) {\r\n self._initPause = false;\r\n $.post('/UserLeads/GetRecords2', { Sid: self.LastSID }, (data) => {\r\n let a: any = '';\r\n a = $(a);\r\n $('#recordCallAudioContainer').append(a);\r\n try {\r\n (a[0] as any)?.play();\r\n }\r\n catch (ex) {\r\n\r\n try {\r\n ($('#recordCallAudioContainer audio')[0] as any).play()\r\n }\r\n catch (ex) { }\r\n }\r\n\r\n });\r\n }\r\n else {\r\n try {\r\n ($('#recordCallAudioContainer audio')[0] as any).play()\r\n }\r\n catch (ex) { }\r\n\r\n }\r\n });\r\n }\r\n this._pause = pause\r\n }\r\n\r\n StartRecord(cb) {\r\n const sid = this.LastSID;\r\n const t = this;\r\n if (!this.Recording)\r\n $.post('/Twilio/StartRecord', { sid }, (data) => {\r\n if (cb) cb(JSON.parse(data));\r\n t.Recording = true\r\n });\r\n\r\n }\r\n\r\n StopRecord(cb) {\r\n const sid = this.LastSID;\r\n const t = this;\r\n if (this.Recording)\r\n $.post('/Twilio/StopRecord', { Sid: sid }, (data) => {\r\n if (cb) cb(JSON.parse(data));\r\n t.Recording = false;\r\n t.Pause = false;\r\n });\r\n }\r\n\r\n PauseRecord(cb) {\r\n const sid = this.LastSID;\r\n const t = this;\r\n if (this.Recording && !this.Pause)\r\n $.post('/Twilio/PauseRecord', { Sid: sid }, (data) => {\r\n if (cb) cb(JSON.parse(data));\r\n t.Pause = true;\r\n });\r\n }\r\n\r\n ResumeRecord(cb) {\r\n const t = this;\r\n const sid = this.LastSID;\r\n if (this.Recording && this.Pause)\r\n $.post('/Twilio/ResumeRecord', { Sid: sid }, (data) => {\r\n if (cb) cb(JSON.parse(data));\r\n t.Pause = false;\r\n });\r\n }\r\n\r\n\r\n Check(callback: (b: boolean, stream) => any) {\r\n try {\r\n navigator.mediaDevices.getUserMedia({ audio: true })\r\n .then(function (stream) {\r\n callback(true, stream);\r\n\r\n }).catch(function (err) {\r\n Logger('Error', err);\r\n callback(false, null);\r\n return;\r\n });\r\n }\r\n catch (ex) {\r\n Logger('Error', ex);\r\n callback(false, null);\r\n }\r\n }\r\n\r\n DeviceConnect() {\r\n const self = this;\r\n self.Device.on('connect', (conn) => {\r\n $('#joinCallModal .btn-join').html('Connected');\r\n $('#joinCallModal .btn-wisp').css('visibility', 'visible');\r\n self.LastSID = conn.parameters.CallSid;\r\n this.LastConnection = conn.parameters;\r\n this.Pause = null;\r\n self.Connection.invoke('ProcessCall', self.LastSID, window['leadId'], 1);\r\n window['sendkey'] = (digi) => {\r\n const con = self.Device.activeConnection();\r\n con.sendDigits(digi);\r\n }\r\n\r\n // if(window['UserLead']){\r\n // if(window['UserLead']['LastEventId']){\r\n // $.get('/Event/Remove', { Id: window['UserLead']['LastEventId'] }, (data) => {});\r\n // }\r\n // }\r\n self.Connection.invoke('AddPhone',\r\n {\r\n Sid: self.LastSID,\r\n From: conn.message.From,\r\n To: conn.message.tocall,\r\n Bid: window['leadId']\r\n });\r\n // Called for all new connections\r\n\r\n // $.connection.myHub.server.processCall(conn.parameters.CallSid, currentModalBusinessId);\r\n // self.Connection.emit('Call', () => { })\r\n\r\n self.IsRecStarted = false;\r\n self.updateCallStatus('Success');\r\n self.TimerStart = new Date().getTime();\r\n self.CheckTime = () => {\r\n self.SetCheckTime();\r\n }\r\n\r\n self.CallStartTimer();\r\n\r\n $('.endCall-btn').removeAttr('disabled');\r\n $('.close-crm, #changeLeadModal .close-custom').attr('data-dismiss', '').addClass('big');\r\n $('#dialer-keypad-btn').prop('disabled', false);\r\n if (window['crm_data'])\r\n $('.crmCard-btn-leadStatus').prop('disabled', 'disabled');\r\n $('.dialer-btn.records-btn.play-btn').prop('disabled', true).off('click');\r\n });\r\n }\r\n\r\n DeviceDisconnect(isCrm = false) {\r\n const self = this;\r\n self.Device.on('disconnect', (conn) => {\r\n $('#joinCallModal .btn-join').html('Call End!');\r\n // $('.dialer-callBtn.caller').removeAttr('disabled');\r\n\r\n $('.endCall-btn').attr('disabled', 'disabled');\r\n $('.rec-btn').prop('disabled', true);\r\n $('#dialer-keypad-btn').prop('disabled', true);\r\n $('.close-crm, #changeLeadModal .close-custom').attr('data-dismiss', 'modal').removeClass('big');\r\n\r\n dialerUpdate.dialerCallBtns(true);\r\n\r\n //dialerUpdate.recordAnimation();\r\n self.Recording = false;\r\n self.Pause = false;\r\n if (window['crm_data']) dialerUpdate.deviceDisconnectOnCRMCard();\r\n\r\n self.Connection.invoke('EndCall');\r\n self.Connection.invoke('EditPhone',\r\n {\r\n Sid: self.LastSID,\r\n From: conn.message.From,\r\n To: conn.message.tocall,\r\n Bid: window['leadId']\r\n });\r\n\r\n if (!window['crm_data']) self.StopTimer();\r\n else {\r\n if (window['UpdateCountCalls'])\r\n self.StopTimer();\r\n if (!window['crm_data'].IsHub) $('.crmCard-btn-leadStatus').prop('disabled', false);\r\n }\r\n\r\n self.CurrentConn = [];\r\n self.updateCallStatus('Call ended');\r\n setTimeout(() => {\r\n $.post('/Account/Check', (data) => {\r\n $('.leadsCount span.count').text(data.Leads);\r\n\r\n $('.dialerMinutes span.count').text(data.Minutes);\r\n });\r\n }, 1500);\r\n\r\n //function sw() {\r\n\r\n // /* $(parent).removeAttr('disabled').off('click').on('click', () => {\r\n\r\n // }); */\r\n //}\r\n //sw();\r\n if (window['crm_data'])\r\n if (window['UpdateCountCalls']) {\r\n window['User'].AccessToHub && window['crm_data'].IsHub ? self.DeviceDisconnectForCompanyDBEvents() : self.DeviceDisconnectForNotCompanyDBEvents();\r\n setTimeout(() => { window['UpdateCountCalls'](); }, 1500);\r\n }\r\n });\r\n }\r\n\r\n DeviceError() {\r\n const self = this;\r\n self.Device.on('error', function (error) {\r\n console.log('Twilio Error code: ' + error.code);\r\n if (error.code == '31205') {\r\n self.WasGeneratedToken = false;\r\n // GenerateToken();\r\n return;\r\n } else {\r\n self.updateCallStatus('ERROR: ' + error.message);\r\n Logger({ status: 'Error', device: self.Device, err: error });\r\n }\r\n });\r\n }\r\n\r\n DeviceIncomming() {\r\n const self = this;\r\n self.Device.on('incoming', function (conn) {\r\n self.updateCallStatus('Incoming connection from ' + conn.parameters.From);\r\n self.CurrentConn.push(conn);\r\n // $('#liveIncomming .liveIncomming-start').show();\r\n // $('#liveIncomming .liveIncomming-inCall span').html(conn.parameters.From);\r\n // ($('#liveIncomming') as any).modal('show');\r\n });\r\n }\r\n\r\n DeviceOffline() {\r\n const self = this;\r\n self.Device.on('offline', function () {\r\n //Called on network connection lost.\r\n // ($('#liveIncomming') as any).modal('hide'); // where modal?\r\n });\r\n }\r\n\r\n DeviceReady() {\r\n const self = this;\r\n self.Device.on('ready', function (device) {\r\n self.updateCallStatus('Ready');\r\n });\r\n }\r\n\r\n SetCheckTime() {\r\n const self = this;\r\n const now = new Date().getTime();\r\n const time = now - self.TimerStart;\r\n const date = new Date(time);\r\n let m = date.getMinutes();\r\n let s = date.getSeconds();\r\n m = self.DigitsTime(m);\r\n s = self.DigitsTime(s);\r\n dialerUpdate.updateCallTime(`${m}:${s}`);\r\n self.TimerId = setTimeout(self.CheckTime, 1000);\r\n }\r\n\r\n updateCallStatus(status: string) {\r\n if (this.CallStatus === undefined) this.CallStatus = { Status: 'Init' };\r\n this.CallStatus.Status = status;\r\n dialerUpdate.updateCallStatus(this.CallStatus.Status);\r\n }\r\n\r\n //----\r\n\r\n\r\n SendAudio(audio) {\r\n const self = this;\r\n $.post('/Send/Play', { CallSID: self.Device._activeConnection.parameters.CallSid, Play: audio }, console.log);\r\n }\r\n\r\n CallStartTimer() {\r\n this.TimerStart = new Date().getTime();\r\n this.CheckTime();\r\n }\r\n\r\n DeviceDisconnectForCompanyDBEvents() {\r\n const self = this;\r\n if (window['User'].AccessToHub && window['crm_data'].IsHub) self.ChangeLeadStatusModalLoad();\r\n }\r\n\r\n DeviceDisconnectForNotCompanyDBEvents() {\r\n $('#crmCard-leadStatus-btn').addClass('leadStatusSelect');\r\n setTimeout(() => $('#crmCard-leadStatus-btn').removeClass('leadStatusSelect'), 20000);\r\n $('.crmCard-btn-leadStatus-dropdown').on('shown.bs.dropdown', () => {\r\n $('#crmCard-leadStatus-btn').removeClass('leadStatusSelect');\r\n });\r\n }\r\n\r\n GenerateToken(cb?: Function) {\r\n const self = this;\r\n $.post('/Twilio/GenerateToken', (data: {\r\n Success: boolean,\r\n Message?: string\r\n Keys?: {\r\n Token: string,\r\n App: string\r\n }\r\n }) => {\r\n if (data.Success) {\r\n self.Token = data.Keys?.Token;\r\n }\r\n else {\r\n Logger('Error', data);\r\n }\r\n if (cb) cb(data);\r\n self.WasGeneratedToken = true;\r\n });\r\n }\r\n\r\n //HangUp() {\r\n // // $('.call').css('visibility', 'visible');\r\n // //console.log(' -=hangup clicked=- ');\r\n // const dis = this.Device.disconnectAll();\r\n // this.Connection.invoke('EndCall');\r\n //}\r\n async HangUp() {\r\n if (this.Connection.state !== 'Connected') {\r\n await this.Connection.start();\r\n }\r\n\r\n if (this.Connection.state === 'Connected' /* Connected */) {\r\n this.Connection.invoke('EndCall');\r\n } else {\r\n console.error('Connection not yet established.');\r\n // Handle appropriately (e.g., retry or inform the user)\r\n }\r\n const dis = this.Device.disconnectAll();\r\n }\r\n\r\n\r\n\r\n StopTimer() {\r\n this.CheckTime = function () { };\r\n clearTimeout(this.TimerId);\r\n this.TimerId = -1;\r\n }\r\n\r\n DigitsTime(i) {\r\n if (i < 10) i = '0' + i;\r\n return i;\r\n }\r\n\r\n\r\n ChangeLeadStatusModalLoad() {\r\n const self = this;\r\n if ($('#changeLeadStatusModal').length) {\r\n self.ChangeLeadStatusModalShow();\r\n } else {\r\n $.post('/Popups/ChangeLeadStatusModal', data => {\r\n $('body').append(data);\r\n self.ChangeLeadStatusModalShow();\r\n });\r\n }\r\n }\r\n\r\n ChangeLeadStatusModalShow() {\r\n // ====== load Statuses list ===\r\n ChangeLeadStatusModalStatusList();\r\n // ====== /load Statuses list ===\r\n\r\n // ====== New tab ===\r\n $('#moveFromCompany-newTab-btn').off('click').on('click', () => {\r\n ShowAddNewTabSection(false);\r\n });\r\n\r\n $('.moveFromCompany-newTabSave-input').off('input').on('input', (e) => {\r\n const tab = $('#moveFromCompany-newTabSave-btn');\r\n ($(e.target) as any).val().length > 0 ? tab.prop('disabled', false) : tab.prop('disabled', true);\r\n });\r\n\r\n $('#moveFromCompany-newTabSave-btn').off('click').on('click', () => {\r\n const name = $('.moveFromCompany-newTabSave-input').val() as string;\r\n const userId = window['User'].Id;\r\n const userTab = {\r\n UserId: userId,\r\n Tab: name\r\n };\r\n $.ajax({\r\n type: 'POST',\r\n url: '/MultipleNodeSelection/AddNewTab',\r\n data: userTab,\r\n dataType: 'json',\r\n crossDomain: true,\r\n success: (id) => {\r\n const grid = $('.moveFromCompany-tabList').dxDataGrid('instance');\r\n $('.moveFromCompany-newTabSave-input').val('');\r\n grid.clearSelection();\r\n grid.refresh();\r\n grid.selectRows(id, false);\r\n },\r\n error: () => {\r\n alert('failed to Add New Tab');\r\n }\r\n });\r\n });\r\n // ====== /New tab ===\r\n\r\n // === Close Change Leads Status Modal ===\r\n $('#changeLeadStatusModal').off('hidden.bs.modal').on('hidden.bs.modal', () => {\r\n try {\r\n $('.moveFromCompany-StatusList').dxSelectBox('dispose');\r\n $('.moveFromCompany-tabList').dxDataGrid('dispose');\r\n $('.changeLeadStatusModal-btn').prop('disabled', true);\r\n\r\n $('.moveFromCompany-leadGroup').hide();\r\n $('.moveFromCompany-newTab-section').show();\r\n $('.moveFromCompany-newTabSave-section').hide();\r\n $('.moveFromCompany-newTabSave-input').val('');\r\n $('#moveFromCompany-newTabSave-btn').removeAttr('data-action').prop('disabled', true);\r\n } catch (ex) { }\r\n })\r\n // === /Close Change Leads Status Modal ===\r\n\r\n function ChangeLeadStatusModalStatusList() {\r\n window['InstanceBase'].getListOfStatuses(ListStatusesCallback);\r\n\r\n function ListStatusesCallback() {\r\n const listStatuses = window['listOfStatuses'].filter(el => el.Value != 'NONE' && el.Value != 'Expired' && el.Value != 'Deleted');\r\n $('.moveFromCompany-StatusList').dxSelectBox({\r\n dataSource: listStatuses,\r\n displayExpr: 'Value',\r\n dropDownOptions: {\r\n maxHeight: 185\r\n },\r\n onInitialized: () => {\r\n ($('#changeLeadStatusModal') as any).modal('show');\r\n },\r\n onSelectionChanged: (select) => {\r\n switch (select.selectedItem.Id) {\r\n case '00000000-0000-0000-0000-000000000001': // No Answer\r\n TabListOnChangeLeadStatusModal(true);\r\n YesBtnOnChangeLeadStatusModal('move', 'Move to My-DB', true);\r\n break;\r\n case '00000000-0000-0000-0000-000000000002': // Declined\r\n TabListOnChangeLeadStatusModal(false);\r\n YesBtnOnChangeLeadStatusModal('notGood', 'Save', false);\r\n break;\r\n case '00000000-0000-0000-0000-000000000003': // Sold\r\n TabListOnChangeLeadStatusModal(true);\r\n YesBtnOnChangeLeadStatusModal('sold', 'Create order and Move to My-DB', true);\r\n break;\r\n case 'bb3d9a6f-09ae-4b8a-b89f-444df2c8ee57': // Disconnected\r\n TabListOnChangeLeadStatusModal(false);\r\n YesBtnOnChangeLeadStatusModal('notGood', 'Save', false);\r\n break;\r\n case '33fe4497-39c1-4f5c-80c9-543105cb665f': // Corporate\r\n TabListOnChangeLeadStatusModal(false);\r\n YesBtnOnChangeLeadStatusModal('events', 'Save', false);\r\n break;\r\n case '6bcec2f9-657b-47cc-bad0-81fe0d385077': // Out of Business\r\n TabListOnChangeLeadStatusModal(false);\r\n YesBtnOnChangeLeadStatusModal('notGood', 'Save', false);\r\n break;\r\n case '37a17a02-051c-4d80-a765-83ad6e126a55': // Bilingual\r\n TabListOnChangeLeadStatusModal(false);\r\n YesBtnOnChangeLeadStatusModal('events', 'Save', false);\r\n break;\r\n case '8f6c9359-5c78-4763-bb62-b059d9162570': // Callback\r\n TabListOnChangeLeadStatusModal(true);\r\n YesBtnOnChangeLeadStatusModal('move', 'Move to My-DB', true);\r\n break;\r\n case '1e73adde-cc3d-4dec-97ad-c6ce2e55e99f': // Left Msg.\r\n TabListOnChangeLeadStatusModal(true);\r\n YesBtnOnChangeLeadStatusModal('move', 'Move to My-DB', true);\r\n break;\r\n default:\r\n TabListOnChangeLeadStatusModal(true);\r\n YesBtnOnChangeLeadStatusModal('move', 'Move to My-DB', true);\r\n break;\r\n }\r\n },\r\n value: '',\r\n valueExpr: 'Id',\r\n });\r\n\r\n }\r\n }\r\n\r\n function CRMCardChangeLeadStatus(statusId) {\r\n window['crmCardVars'].ActiveStatusId = statusId;\r\n window['InstanceBase'].ifVisibleMyCompanyDb();\r\n ($('#changeLeadStatusModal') as any).modal('hide');\r\n }\r\n\r\n function LeaveLeadInEvents(leadId, statusId) {\r\n $.ajax({\r\n url: '/UserLeads/GetGenTab',\r\n method: 'GET',\r\n contentType: 'application/json',\r\n success(data) {\r\n const obj = {\r\n keys: [leadId],\r\n tab: window['crm_data'].TabId,\r\n moveTo: data\r\n };\r\n $.ajax({\r\n url: '/UserLeads/MoveRows',\r\n method: 'POST',\r\n contentType: 'application/json',\r\n data: JSON.stringify(obj), success() {\r\n $.ajax({\r\n type: 'POST',\r\n url: '/UserLeads/ChangeStatusByLeadId',\r\n data: { leadId: window['leadId'], status: statusId },\r\n dataType: 'json',\r\n success: (data) => {\r\n if (data.Result) {\r\n RemoveEventOnChangeLeadStatusModal();\r\n CRMCardChangeLeadStatus(statusId);\r\n ($('#newInfo') as any).modal('hide');\r\n return;\r\n }\r\n },\r\n });\r\n }\r\n });\r\n }\r\n })\r\n }\r\n\r\n function MoveLeadToMyDB(leadId, moveTabId, moveTabName, statusId, statusName) {\r\n $('.root-preloader').show();\r\n const obj = {\r\n Leads: [leadId],\r\n TabId: moveTabId.toString(),\r\n StatusId: statusId\r\n };\r\n\r\n $.ajax({\r\n crossDomain: true,\r\n data: JSON.stringify(obj),\r\n dataType: 'json',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n success: () => {\r\n window['CRM'].GetFullCRM(window['leadId']);\r\n $('.crmCard-btn-leadStatus').text(statusName);\r\n $('.crmCard-tabName-text').text(moveTabName);\r\n CRMCardChangeLeadStatus(statusId);\r\n // $('.dialer-callBtn.caller').prop('disabled', true);\r\n dialerUpdate.dialerCallBtns(false);\r\n $('.endCall-btn').prop('disabled', true);\r\n },\r\n type: 'POST',\r\n url: '/MultipleNodeSelection/TransferleadsToTab',\r\n });\r\n }\r\n\r\n function MoveLeadToNotGood(leadId, statusId) {\r\n $.ajax({\r\n url: '/UserLeads/GetNGTab',\r\n method: 'GET',\r\n contentType: 'application/json',\r\n success(data) {\r\n const obj = {\r\n keys: [leadId],\r\n tab: window['crm_data'].TabId,\r\n moveTo: data\r\n };\r\n $.ajax({\r\n url: '/UserLeads/MoveRows',\r\n method: 'POST',\r\n contentType: 'application/json',\r\n data: JSON.stringify(obj), success(data) {\r\n $.ajax({\r\n type: 'POST',\r\n url: '/UserLeads/ChangeStatusByLeadId',\r\n data: { leadId: window['leadId'], status: statusId },\r\n dataType: 'json',\r\n success: (data) => {\r\n if (data.Result) {\r\n RemoveEventOnChangeLeadStatusModal();\r\n CRMCardChangeLeadStatus(statusId);\r\n ($('#newInfo') as any).modal('hide');\r\n return;\r\n }\r\n },\r\n });\r\n }\r\n });\r\n }\r\n })\r\n }\r\n\r\n function RemoveEventOnChangeLeadStatusModal() {\r\n $.get('/Event/Remove', { Id: window['UserLead']['LastEventId'] }, (data) => { });\r\n }\r\n\r\n function SaveLeadWithStatusNone() {\r\n const statusId = '00000000-0000-0000-0000-000000000000';\r\n $.ajax({\r\n type: 'POST',\r\n url: '/UserLeads/ChangeStatusByLeadId',\r\n data: { leadId: window['leadId'], status: statusId },\r\n dataType: 'json',\r\n success: (data) => {\r\n if (data.Result) {\r\n CRMCardChangeLeadStatus(statusId);\r\n ($('#newInfo') as any).modal('hide');\r\n }\r\n },\r\n });\r\n }\r\n\r\n function ShowAddNewTabSection(show: boolean) {\r\n const newTabSection = $('.moveFromCompany-newTab-section');\r\n const newTabSaveSection = $('.moveFromCompany-newTabSave-section');\r\n const newTabSaveInput = $('.moveFromCompany-newTabSave-input');\r\n const newTabSaveBtn = $('#moveFromCompany-newTabSave-btn');\r\n if (show) {\r\n newTabSection.show();\r\n newTabSaveSection.hide();\r\n newTabSaveInput.val('');\r\n newTabSaveBtn.prop('disabled', true);\r\n } else {\r\n $('.moveFromCompany-tabList').dxDataGrid('instance').deselectAll();\r\n newTabSection.hide();\r\n newTabSaveSection.show();\r\n newTabSaveInput.focus();\r\n }\r\n }\r\n\r\n function TabListOnChangeLeadStatusModal(showTabList: boolean) {\r\n const modalId = '#changeLeadStatusModal';\r\n if (showTabList) {\r\n try {\r\n ($('.moveFromCompany-tabList') as any).dxDataGrid('dispose');\r\n }\r\n catch (ex) {\r\n console.warn(ex);\r\n }\r\n\r\n const leadsToDataSource = window['DevExpress'].data.AspNet.createStore({\r\n key: 'Id',\r\n loadMethod: 'POST',\r\n loadParams: { Id: window['User'].Id },\r\n loadUrl: '/MultipleNodeSelection/GetTabsByUserId',\r\n });\r\n $('.moveFromCompany-tabList').dxDataGrid({\r\n dataSource: leadsToDataSource,\r\n columns: [{\r\n caption: 'Tab Name',\r\n dataField: 'Name',\r\n sortOrder: 'asc'\r\n }],\r\n height: 200,\r\n hoverStateEnabled: true,\r\n keyExpr: 'Id',\r\n onEditorPreparing: (e) => {\r\n window['InstanceBase'].devExSearchFilterDelay(e);\r\n window['InstanceBase'].devExSearchFilterMin(e);\r\n },\r\n onSelectionChanged: () => {\r\n const selectStatus = $('.moveFromCompany-StatusList').dxSelectBox('instance');\r\n const btn = $('.changeLeadStatusModal-btn');\r\n selectStatus.option('value') == null ? btn.prop('disabled', true) : btn.prop('disabled', false);\r\n ShowAddNewTabSection(true);\r\n },\r\n scrolling: { mode: 'virtual' },\r\n searchPanel: {\r\n visible: true\r\n },\r\n // selectedRowKeys: value,\r\n selection: {\r\n allowSelectAll: true,\r\n deferred: false,\r\n mode: 'single',\r\n selectAllMode: 'allPages',\r\n showCheckBoxesMode: 'onClick'\r\n },\r\n showBorders: true,\r\n });\r\n $(`${modalId} .moveFromCompany-leadGroup`).show();\r\n } else {\r\n $(`${modalId} .moveFromCompany-leadGroup`).hide();\r\n }\r\n }\r\n\r\n function YesBtnOnChangeLeadStatusModal(name: string, text = 'Save', disabled = true) {\r\n const yesBtn = $('.changeLeadStatusModal-btn');\r\n yesBtn.text(text);\r\n yesBtn.prop('disabled', disabled);\r\n yesBtn.attr('data-action', name);\r\n yesBtn.show();\r\n\r\n yesBtn.off('click').on('click', (e) => {\r\n $('.root-preloader').show();\r\n // === get lead id ===\r\n const selectedLeadId = window['leadId'];\r\n // === /get lead id ===\r\n\r\n // === get lead status ===\r\n const statusId = $('.moveFromCompany-StatusList').dxSelectBox('option', 'value');\r\n const statusName = $('.moveFromCompany-StatusList').dxSelectBox('option', 'text');\r\n // === /get lead status ===\r\n\r\n const tab = $(e.currentTarget);\r\n\r\n switch (tab.attr('data-action')) {\r\n case 'events':\r\n LeaveLeadInEvents(selectedLeadId, statusId);\r\n break;\r\n case 'move':\r\n MoveWithSelectTab();\r\n break;\r\n case 'notGood':\r\n MoveLeadToNotGood(selectedLeadId, statusId);\r\n break;\r\n case 'save':\r\n SaveLeadWithStatusNone();\r\n break;\r\n case 'sold':\r\n //if (window['User'] && window['User'].RAI) {\r\n // window.open(`http://media.raichicago.com:84/Popup?Id=${window['leadId']}&type=3`, '_blank');\r\n // // MoveLeadToMyDB(selectedLeadId, moveTabId, moveTabName, statusId, statusName);\r\n //} else {\r\n MoveWithSelectTab();\r\n ($('#changeLeadStatusModal') as any).modal('hide');\r\n window['InstanceBase'].createNewOrderModalLoad();\r\n //}\r\n break;\r\n default:\r\n $.ajax({\r\n type: 'POST',\r\n url: '/UserLeads/ChangeStatusByLeadId',\r\n data: { leadId: window['leadId'], status: statusId },\r\n dataType: 'json',\r\n success: (data) => {\r\n if (data.Result) {\r\n CRMCardChangeLeadStatus(statusId);\r\n ($('#newInfo') as any).modal('hide');\r\n }\r\n },\r\n });\r\n break;\r\n }\r\n\r\n function MoveWithSelectTab() {\r\n const moveTab = $('.moveFromCompany-tabList').dxDataGrid('instance');\r\n const moveTabName = moveTab.getSelectedRowsData()[0].Name;\r\n const moveTabId = moveTab.getSelectedRowKeys()[0];\r\n MoveLeadToMyDB(selectedLeadId, moveTabId, moveTabName, statusId, statusName);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n (window['MyTwilio'] as any) = MyTwilio;\r\n\r\n module.exports = MyTwilio\r\n}\r\n\r\n\r\n\r\n\r\n","function tzlookup(Y,W){\"use strict\";var U=\"XIXHXHXGXGXQXQXPXPXOXOXN##U6U6UW#$U%U%U%U%U%XFXEXEXRXRXVXVXWXWXXXXXYXYXZXZY#Y#Y$Y$Y%Y%XSXSXTXTXUXIXHXHXGXGXQXQVAVA#%#&V'#'U6#(#)U%U%U%U%U%#*U%XEXEVLVLVLVLYGYGYGYG#+W=W=W=W=W=W=Y$X+X+X+X+X+XTXUVPUQ#,T*T*#-VAVA#.#/#0#1#2U6U6UWU%U%U%U%U%#3VLVLXEYH#4#5#6YGYGYG#7X.#8W=W=W=#9X,X,#:#;#<#=#>VPVP#?#@#AT*T*#B#C#D#E#F#GV'#H#I#JUWU%U%U%U%X6X6#K#LYH#M#N#O#PYG#Q#R#SX.#T#UW=W=#V#WX,#X#Y#Z$#$$$%$&T)$'$(T*T*$)$*$+TW$,$-$.$/$0$1$2$3U%U%XJXJXF$4$5$6$7$8$9$:YG$;$<$=$>$?$@$A$BW3$C$D$E$F$G$HW8$IT)T)T)XHXGXGXQV=$J$K$L$M$N$O$P$Q$R$SV2XKXJXJXFY4$T$U$V$W$X$Y$Z%#%$%%VN%&%'%(%)%*%+%,%-%.%/%0W8XTT)XIXHXHXGXGXQXQU>%1%2%3TL%4%5%6%7U-XKXKX0X0XF%8%9%:%;%<%=%>%?%@%A%B%C%DX(%E%F%GWU%H%I%J%KXSXTXTXUXIXHXHXGXGXQXQU>%L%M%NTL%OUPXMX1XLXKXKXJX0X5%P%QS0%R%S%T%U%V%W%X%Y%Z&#WUWUWUWUWU&$&%X%XSXSXTXTXU&&ZDZDXGXGXQXQXP&'&(&)&*&+&,UOXLXLXKXKXJXJ&-&.&/S0&0T&&1&2WQ&3&4&5&6&7&8&9&:&;&<&=X%X%XSX%XTXTXUXIZDZDZDXGXQXQXPUI&>&?&@&A&B&C&DXLXKXKXJX3&E&F&G&H&I&J&K&L&M&N&OWEW(?ZB(@(A(BZLZT(CZV(DXQXPXPXOXOXNXNU=(E(F(G(H(IXJXJXFXFX8XE(J(K(L(M(NZ*(OZ2XYXYXZXZY#Y#XCXC(P(QX;X;ZN(RZ>(SXHXHZVZVZA(TZQXPZ:XOXNXNV,(U(V(WV.V.XJXJXFXFXEXET((X(Y(ZZ*Z*XXXXXYXYXZXZY#Y#XCXC)#)$)%)&XT)'XUZ6XHXHXGXGXQXQXPXPXOXOXNXNV,)()))*V.XKXJXJXFX8XEXEXRSE)+SEXWXWXXXXXYXYXZXZY#Y#XC),)-).)/XDXAZ6Z6Z8XHXHXGXGXQXQXPXPXOXOXNXNV,)0)1T.XKXKXJXJXFX8XEXEXRXRXVXVXWXWXXXXXYZ/XZXZY#Y#Y$Y$Y%)2)3XDXTZ6Z6XIXHXHXGXGXQXQXPXPXOXOXNXN)4)5)6X9XKXKXJXJXFXFXEXEXRXRXVSESEZ/Z/XXZ/XYXZXZY#Y#Y$Y$Y%Y%XSXSXTZ6Z6XIXHXHXGXGXQXQXPXPXOXOXNXNV&)7)8X9XKX7X7X7XFXFXEXEXRXRXVXVXWXWXXXXXYXYXZXZY#Y#Y$Y$Y%Y%XSXSVEZ6XUXIXHXHXGXGXQXQXPXPXOXOXNXNVHVH)9):T9T9XJXJXFXFXEXEXRXRVIVIVIVI);VFVFVC)VH)?Y&)@VJVJVJ)AVIVIVI)BVFVF)C)DVK)E)F)G)H)I)J)K)L)MVGVGVGVGVGVGXGXQXQXPXPXOXOXNXNVHVHT9T9T9T9)NVH)OY&)PVJVJVJ)QVIVIVI)RVFVF)S)TVKVKVK)UXCXCXCXCXC)VVGVGVGVGVGVGVGVGVGVGVGVGVGVGVG)W)X)Y)Z*#*$*%*&*'*(*)***+*,*-*.*/*0*1*2*3*4*5*6*7*8*9*:*;*<*=*>*?VGVGXNXNV'*?XLXLUWU%*>TF*?TFTFV'TFV'V'*>V'*?U6*?V8V8*?U%V8*@U%U%U%*@XYW=YGXYXHT*UQT*XQXQ*>*?VAVA*?*@*@TF*ATFTF*ATFTF*AV'TFTFV'*A*B*C*CTRV/XFVLVLYH*CYHYH*C*DXVXV*DYGYGX.YG*D*DW=X.*EW=*E*F*GX,X+X,*GX+X+X+*G*G*HWWWW*HWWWWWWXTXTWW*HVPVPVPUQ*GUQUQUQUQT*UQT**FV>*GV>*GVAV>*HVAVA*HVAVA*HVAVA*H*IVAVATFV'VAV'V'*HV'*IU6U6U6*IU6U6*IU6X6XFXFX4XEXEX4Y@YH*GYH*HYUYUYU*H*HY7Y7*I*IYGYGYGYGYG*IYGYGYG*I*J*J*KX.X.X.X.*K*L*LW=*MW=*MX,*N*OX,X,*OX,X,*OX,*P*P*QW;*R*RWW*SWB*S*TWBWB*T*UWB*VVPVPW8*VVPVP*VVPUQUQT)UQ*UT*UQT**U*VXQV0*VV=*WV=*W*XV=*Y*YV)*ZV)V)V?*ZV?V?*ZV?V?V'*ZV;+#U6+#U6V;V;+#V;V;+#U&+$U&XLXLU&V2Y@Y@XF+#Y@Y@+#Y@XEYHY@+#+#+$+%+&YU+&+'+(+(+)+*++YGYG++YG+++,+-+.+.X.+/X.X.X.+/+0X.+0+1+2+2+3+4+5+5+6+7+8W=W=W=+8+8+9W3W3W3+9+:W%X,X,+:+;X,+;X,X+X+X+X++;X+WBWRXSWB+:XSW8W8W8W8T)V=+9+:+;+;+<+=+>+>V)TTTTV)V?+>+?V?V?TL+?V;V;+?+@+@V;V;V;V;V;V;+@V;+@+A+B+BV2+CV2+C+DYIYI+D+EYI+F+F+G+H+I+I+J+K+L+L+M+N+O+O+P+Q+R+R+S+T+U+U+V+W+X+X+Y+ZVR+Z,#,$,%VN,%VNVN,%,&,'X(,',(,)W2X',),*X',*,+X'X',+,,W&,-,-,.WUWU,.,/,0,1X+,1X+,2WRXSWRX)WW,1,2WW,2,3U>,4,4TTTTTTTT,4TTTL,4,5,6,7,7,8UPUP,8UPUPUP,8U-XLXLXF,8XFY>,8,9,:YB,:,;YBYB,;,,>,?,@,A,A,BY9Y9,B,CY9,D,D,E,F,G,G,HVS,I,I,J,K,L,L,M,N,O,O,P,QX(X(,QWUWU,Q,RWUWU,R,SWUWUWU,SWU,T,TX+,UY%X+X%X%X%,TX)XSXSU>,T,U,V,VTT,W,X,XTL,YTLTL,YTL,ZXF,ZXFS:,Z-#S:-$-$-%-&-'YMY*T&T&Y*-&-'S9-'-(S9-)-)-*-+-,-,X#--X#---.X#X#-.-/-0-1-1-2-3-4-4-5-6-7WUWTWUWT-6X%X%X%ZJZDXIZDV:-5XPUF-5-6UF-7-7-8-9-:TLTL-:UHTL-:UH-;-;UO-->T&-?-@-@S9-AS9S9-AS9-B-B-CWQ-DX#-D-E-F-FW9-GW9-G-H-IWSH.>.?S/.?.@S/.A.A.BSUSUWS>/*/+/,XWXYZ1Z+Z+W4/+W4/,/,WC/-WCWCW5WC/-W5/-W5/.ZSZ7ZS/.ZKZWXTXTZWZWZ?Z?Z?Z=ZZ/,/,ZT/-ZTZEXGZVZVZIZIZVZV/+/,U=/-/-/.U/8/9S>Z.SR/9Z0Z0/9Z*/9W4Y#Y#/9WCY$Y$WC/9XCXC/9/:/;X>/;/X;/Z>ZX/;ZXZVZV/;ZVZVZVZV/;U=/;U=//?/@/@V./AV.V./AV.V.XR/AXRT(/ASNT(/B/B/CSC/D/D/E/FSRSRZ*XWZ*XXZ2Z4Z2/DX>/EX>X>X;/EX;Z;Z;ZN/EZXZXZ6XIZAZQXQXQXMV,V,/C/C/D/ET0/E/F/G/HT(/H/I/J/J/KSE/L/LSR/MXV/MX>/NX:X>X;X:/NX;X;/N/OX;XS/OXSZNZNZMXTV,/NV,/O/O/P/Q/R/R/S/T/USE/USESEXC/UXCXC/UX:Y%X:X:/UX:/VXDXD/V/W/W/X/YT/T5/Y/ZT5Y%/ZY%Y%/Z0#X@X@XMV,XMV&/Z0#0$0%0%XLT4X9V&0%XMV&T90%XLXLV&V&T9T90$T9T9T9XXXX0$VFXZXZVCVKXTXT0#VGXJXJ0#VHXF0#VH0$0$SE0%SE0%VI0&VI0&VF0'VF0'VC0(VCVCVKVCVK0'0(VKVK0(0)VKVK0)0*0+XC0+0,XCXC0,0-XCXC0-0.XCXC0.0/XCXC0/00XCXC00VG01VG01VH02VHVH02VH0303SE04SE04VI05VI05VF06VF06VC07VCVCVKVCVK06XC07XC07VG08VG08VHVGVGVHVHVGVGT9T9VGVGT9T9VGVGT9T9VGVGT9T9VGVG03VHVGVGVHVHVGVGVH02VGVGY&Y&VGVG01SEVGVGVJVJVGVGVJVJVGVGVJVJVGVG0.VIVGVGVIVIVGVGVIVIVGVGVIVIVGVG0+VFVGVGVFVFVGVGVFVFVGVG0)VCVGVGVCVKVGVGVKVKVGVGVKVKVGVGVKVKVGVG0%XCVGVGXCXCVGVGXCXCVGVGXCXCVGVGXCXCVGVGXCXCVGVG/XVGVGVGXNXNV'U6XOXOVATFVATFVATFV'U6V'U6V'U6V'U6U6U6U6V8UWUWU%U%V8U%V8U%U%U%U%TRT*V>T*V>V>VAV>VAVAVATFTFVAVATFTFVATFVATFVATFTFTFV'V'TFTFV'V'TFTFV'U6V'U6V'V'TFV'V'U6V'U6TRTRU%TRYHYHYUYUYHYH/BY7YHYHY7YG/AYGYGYGYGX./AX.X.W=X.X.X.W=X.X.W=X,W=X,W=W=W=X,W=X,X,X,X,X+X,X+X+X+X+WWX+X+X+WWX+X+WWWWX+XSWWWWWWVPVPVPVPVPVPUQT*V>T*V>T*V>T*V>V>VAV>V>V>VAV>V>VAVAV>VATFTFVAVATFTFVAVATFTFVATFV'U6TXPU>/(U>U>U>V=/(/)/*TWTW/*/+U>U>U>/+TTTTU>TTTWV)TWV)TT/)TTTTTLTL/)TL/)TLTL/*/*TU/+/,V;V;/,/-V;U6V;V;V;/,/-/.V;TBV;TB/-UKUK/.U-U-U-/.TB/.V2V2V2V2U$UJ/-Y@Y@/.Y@Y@/./////0YI/1/1/2/3/4YI/4YI/5Y,Y,/5Y,Y,/5/6/7/7/8/9/:/:/;//?Z&Z&/?/@/@/A/B/C/C/D/E/F/F/G/HY/PU>U>TETE/P/QU>/QU>TT/QTT/RTT/RTLTLTLTL/RTL/STUTU/S/TTL/TTL/U/UUP/VUPV;/V/W/X/X/YUPUP/YUPUPUP/YU-XLXLYBYBYB/YYBYB/YYBYB/YYB/Z/ZYB0#YBYIYI0#0$YI0$YIYI0$YM0%0&0&0'YMYM0'0(0)0*0*0+0,0-0-0.Y*Y*0.0/000101020304Y*04Y*05Y9Y905Y9XVYRY9Y9YR04Y9Y9YG04Y905YGYG0506Y906Y907YGYG0708VQVQVWVQ0708090:VWVW0:XWVQVQVSVQWSWSWS09VSVS090:WSWP0:WSWPWPWSVNVS09VS0:WS0:0;0<0VNVN0>0?0?0@0A0B0B0CW,W,VNVN0C0DVNX(X(X(0CX(X(X(X(W2WUWUX'X'WUWUX'X'WUX'X'X'X'0@X'WU0@WUWUWUWU0@0@0AWM0BWU0B0C0DWMWM0DWTX%0DX%X%0D0E0F0GU>0GXPV:0GUYV:U/0GTT0H0IUY0I0J0KTTTTUU0KTT0KTTTLTT0KTLTL0KUP0LUP0LUP0MUPXFY>XFS:0L0MS:S:YB0M0N0OS:0OS0S00OT'0PT'YM0PT'YC0PT'S0T&0PT&T&T&0P0QY*XVT&T&T&S9Y9Y9XV0P0P0Q0R0S0S0T0UVO0U0VW(0W0W0XVUVUVOVUWQ0XVUVUWQVU0WX#0XX#0X0YVU0Z0ZX#X#X#X#0ZX#X#0ZVS1#1$1$1%W7W7W7W71%W7W7W7W71%1%1&W71'1'1(1)1*1*1+W9W9W91+W91,X(X(W9WWXX%UF1>XOUI1>UIUIUIUI1>UIUIUI1>UIU*UH1>1?TH1?TAU*V7U.U.TKTKU.UOU.U.XMXMV7TDU71SYSYSK1>SYSXSK1>SK1>1?S@SXSX1?SX1?SXSX1@SXSXS3S3SHSHS3SFSH1>SFSFSH1>SHS/SHSFSFSF1=1>S/S/1>VM1?1@S/SUS/S/VMVMVMSUVMVMSUSU1=W'1>W'WWK1>VXVXVXWKWKVXW0WK1=WK1>WDWDW0Y$ZHZGZHZGUVUVTDXMXMTDU+U+TD1:TDTDTDTDTDUBTIU,TITCTITIUBUBTCTCUBTCU,16U,UXUXUXUXTJU,U,TCV+UXTJV+T@XKXK13XKSV13SVSV13S.14S.1415S.XESK1516S@SQS@SL16S@S@SLS7S3S3S315S3S3SJS3S@S7S714S3S314SOSFSFSO1414SOSOSOSOSOSO14S/S/SFS/13SG14SGSGSW14SWS/S/S/SUS/SUSUSUW11W>W>W>11W>1213W4W?13WLY$W?1314W?WD14W?W?WCWLWCWD13WCWCWCWCWCW5W5ZPW5W5ZPY%W5W5U+U+1011U+U+11U=U=11U=U=TDTDU=U=TDUBTDUBU=U=U=TXTXUBTXUBUBV+UBUBUBV+UBV+T@U#T@U#1*U#1+U#U#U#1+U#SL1+S7S71+1,1-1.S71.S7SJSJSJSJSO1-SJSNSJ1-SOSJSOSJSOSOSOSO1,SO1-SO1-SOSO1-SG1.S>1.SWS>1/SWSW1/SWSUSUSWXW1.1/S>S>1/WLWLWLW4WLW4W4WLWLWL1.WLWCW4W4WCW5WCW5W5Y%W5ZSW5ZSW5ZSZ7Z7Z7ZBZZXIZZZ5Z=XHZOXHZOXHZ5ZO1&V*U=U=V*TXV*1&U=UW5Y%X>Y%Y%X>XCX>Y%W5X>Y%W5ZSY%X;ZSZSX;XSZBZBZSXSZBZBZ;Z;Z>Z>Z>ZXZTXGXGZVZVZVZVZAU=U<0NUXCX>XCX>XCX>X>0MX>X>Z;XTZNZNV,T/0L0MT10MT50N0NT;T0T00N0O0P0QT;T;0Q0R0R0S0TV.T0T;T00T0T0U0VV.T(SCT(SCT(T(T(SET(SESESESCSCSC0S0SSESESESESE0S0TSESR0TSR0TSESESEXCX>XCX>XCX:XCX:X:X;X:XDX;X;XDXDX;X;XD0PX;X;0P0Q0QT60R0S0ST30T0UT2T0T70UT0T0T00UT70UT5T50U0V0WT.T00W0X0Y0YV.UM0Z0Z1#T.T.UMUMT.XL0ZSESESEXCXCXCX?0YX:X?Y%X:XDX:0YX:0YX:0ZXDXDXB0ZXDXD0ZXDV,V,V,0Z0ZT5T5T5V,0ZV,V,T.T.0ZT.T/0ZT/T/X:0ZY%Y%XBXBX=0ZXBXBX@X@V,0YV,T40Y0ZT4T4V&T4V&V&T4T40YT40YT/T4T4V&T9V&V&XLX9T9XLT9T9V&T9VIVFVIVFVDVGVDVGXJXJT9VHXFXFVHY&VHY&VHY&Y&SEY&SEY&SEY&SEVJVIVJVIVJVIVJVIVIVFVIVFVIVFVIVFVFVCVFVCVFVCVFVCVBVBVKVKVBVBVKVKVBVBVKVKVBVBVKVKVBVBVKXCVBVBXCXCVKXCVKXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVDXCXCVDVGXCVGXCVGXCVGT9VHT9VHT9VHT9VHVHY&VHY&VHY&VHY&Y&SEY&SEY&SEY&SEVJVIVJVIVJVIVJVIVIVFVIVFVIVFVIVFVFVCVFVCVFVCVFVCVKXCVKXCVKXCVKXCXCVGXCVGXCVGXCVGXMVHVGVHT9VHT9VHVHY&VHY&Y&SEY&SEVJVIVJVIVIVFVIVFVFVCVFVCVKXCVKXCXCVGXCVGYHYH/U/VYHYH/VYGYGX.YGYGYHYHYH/UYH/UYHYU/UY7Y7Y7XRY7/UYDY7Y7/UY7YU/UY7Y7Y7Y7/U/VY7/VYGYGYGYG/VYGYGYG/VY=YGX.X.X.X.X./U/VX.X.X&X&X,X,/UW3X,W;X,X,V=V=U8V=TWV)TWV)V)V?V)V?V)/QV)V)Y4Y4Y4/QY@Y@/QY@/Q/RY4Y4Y8/RY@Y@Y'Y,Y'/RYHYHYH/RYHY3Y3Y3Y3/QY3Y3/QYUYUYUYUYUY3YUY3Y3/P/QY3Y3/Q/RY3/RY3Y3YUYU/R/SY,/SY,/TYUYDYUYUYDY7YVYV/R/SYL/T/TYUY3Z&YUXRZ&Z&XRY;/SY;/SZ$Y;/TY7/TYVYVYLYLYL/TYL/TYLYL/T/UYVYG/UYGYGYG/UYGYL/VZ$Z$/VZ$Z$Z$Z$/V/V/WZ&/X/X/YYEYE/YYEYEYE/YYEYEYEYGYGYEYGYE/XYEYEYGYG/XYG/XY=/YYG/YY=Y=Y=Y=Y=Y=/YY=Y=YGY=Y=YN/XYNYGYGYG/XYGYGYG/XYG/XYGYGYXYXYX/X/X/Y/Z0#0#0$YNYNYN0$YN0%Y=X.0%X.YN0%0&0'X.X.0'X.0'0(0)0*0*X.X.X.X.0*X.WOX.X.VNVNX.WIVN0)0)0*0+X&WIX&WIWHX&X&WHWHX&X&WHX&WHWHWIWHWH0'VN0(0(WHVYVYX&X&X&0(WH0(WHWH0(WG0)WGWH0)VYVYVY0)VYVY0)0*W=W=0*WGVYWGWGW=WGW=W=0)W=W30)W3W3W3X,X,WUWUX,X,WUWUV=V=0'0(0(U>U>U>TWTWV=TWV=V=0'0(V=V=0(TOTWTW0(TWTWTWTW0(U>U>U>0(TLTL0(US0(TLTTTL0(TLTLTLTL0(TLTL0(V;TUTU0(TUTLTL0(TU0)0*TU0*TUTU0*V;TU0+V;V;UP0+V;UPV;UPUP0*UP0+V;V;UKUKUKU-UKU-U-0)U-U-U&V20)V2Y4Y4XEY@Y@Y@YIYIY@0'YI0(Y@Y@YIYIY@Y@Y@0'Y@Y'0'0(YI0(YIYIY'Y'0(0)0)0*0+Y,0+0,YIYI0,Y,0-0.YIYIYI0.0.0/YI00Y,Y,00Y,Y,000102Y,02Y,0303YK04YK04Y,0506Y,Y,06070708YM09090:YMYMY,0:0;0<0<0=Z#Z#YM0=YMYM0=0>0?0@Z&Z&0@Z&YK0@0A0B0B0C0D0EZ&Z&0E0FZ&Z&0F0GZ#0GZ#0H0HY-0I0J0J0K0L0M0MY00N0O0O0PY0Y00P0QY00R0R0S0TY+0TY/0UY/0U0VZ&0W0W0XYTETETETETEU>U>TETETTTT13TTTTTTTETTTETETETE12TT12TLTLTLTL12TLTUTLTUTL12TUTU12TUTU121314141516U016171819U019U01:U01:1;UPV;V;V;1;1;V;1V;1>UPUP1>UPUPUP1>U-XLU-YBYB1>1?YBYB1?1@YIYI1@YI1@1AYBYB1AYB1BYB1BYBYBYB1B1CYBYB1C1DYBYBYI1DYI1E1EYM1FYMYIYIYI1F1FYM1GYMYMYMYM1GZ'Z'YMZ'1F1GZ'Z'YPYP1GYPZ'Z'YMYM1F1GYMYJ1GY+YPY+Y+1GY+1H1H1I1J1KY+1K1LYSYWYWY*Y*1K1LY*Y*1LY/1M1NY/Y/1N1OYTYT1O1PYTYT1PYT1P1Q1R1SY/Y/1SXVYTYT1SY9YTXVY9Y9Y*1RY*Y*Y*Y*Y*1R1RY91SY9YRYGXVXVYGYG1RYGWZWZY9Y9WZWZWZ1QWZ1QWZWZ1QX/1R1SY91SY91T1TYG1UWZYGYG1U1V1VVW1W1XVWVWVW1X1X1YX#X#1Y1ZX#X#1ZXW2#X#2#2$VSVSVSVSX#2$VSVS2$2%WSWS2%WSWSWS2%2&VS2&VSVSWSWYWS2&2&2'VSVSWSWSVSWS2&VN2'VNVNVNVN2'VNVN2'2(2(2)2*W#2*2+W#W#WY2+2,2-2-2.2/2020W,21W,W,W,21W7212223W#W#W#W#X(22W#W#W#W#22W#W#W#W#X(X(X'X'WUWUX'WUWUWUWUWUWU2/WU2/20WM20WMWMWMWMWM2021WU21WUWUWUWU21WM2122WMWM22WT23WTX%X)X%X)U>U>U>2222TTUYUYU>22U>U>UYUY22UYU>U>2223U>U>2324TT24UYTTUY24UYUYUY24UY25UY25UYUYU/25U/U/2526U/U/26TTTMUUTTTLTLTLTLTL25TL2526TL272728TLUPTL28TL29TL29TL2:2:YBYB2;YBYB2;YBYBYBS0S02:2;S:S:2;S022?2?W(WFVZW(W(2?W(XV2?W62@2@W(2A2B2B2CS9W62CY9W(W(2C2DW(W(W(2DW(2E2E2F2GVU2GVUVUVUWQ2GWQWQ2GX#2H2IVU2I2JX#VU2JVUVUX#X#2JX#2JX#VU2KX#2KX#X#X#2KX#X#2K2LX#2MX#W72MW72MW7W7W7VS2MW7W7W72MW7W7X#2MX#X#W7W7W7W9W72LW7W72LW7W7W7W7W72L2MW,W,2MW9W7W9W9W92LW9W9W9W9W9W9WX-WUWUX-X*X-X-VXVX22*VXVXVXW>W>W>2)W>W42)W4W42)W4W4W4WL2)WLWLY$W$W?2)2)W?W?W?W?W?WC2)WDWDWDWCXMU+U=U+U+U+2'U+U+U+2'U=U=U+U=U=T@U#T@2&T-U#T-U#U#U#U#2%SLS7SLS7S72$2%2&S7S7SJ2&SN2&XRSN2&SNSNSNS7SJSJSJ2%SJSJSJSJSJSJSOSO2$SO2%2%2&SO2'SOS8SO2'SGSG2'S>2'S>S8S>2'SW2(2)S>SWS>S>SWSW2(SWS>SWS>S>SWXW2'XWWLWLW4WLWLWC2&WCU=V*U=U=V*V*V*USPSPS>S>2&S>SPSPSP2&2&2'SR2(S6SRS6SRS6SR2'S6WCWC2'WCU=U=2'2(2(UX;X>X;V,V,V,T6T2T2T6T2T1T5T1T51XT5T5T5T51XT5T5T/T/T/1XT8T01XT0T21XT2T21XT0T/T0T0T0T01X1XT;1YT;1YTGT;TGTGV.V.V.T;T;T;1XT0T0T01XT;T01X1YT0V.V.V.1XV.V.V.SC1XSE1YSC1YSCSESE1YSE1Z1ZSESSSESESESE1ZSESTSESEX;X;XDXDX;X;XDXD1W1XXDXDV,T6V,T6V,T6V,T31VT3T3T3V,T3V,T3V,T3T51UT3T31UT51UT01VT0T0T0T01VT7T0T71VT01V1WT.1WT.T.T.1WT.T.T.1W1X1YUMT01Y1Z2#2#UMUMUM2#V.UM2$2$2%UMV.T.2%T.T.2%UMT.2&SE2&SESEXCXCX?2&2&XDXDXDXB2&XBXBXBXB2&XB2&2'XBXB2'XBXBXBV,2'V,2(2(T5T5T5V,T5V,T/T.T.2'T.T5T5T/T/2&XBXBXBX=XSX@X@V,2%V,T4T/T/T42%T/T/2%2&T4T4V&T4T/T/T4T4YU2$YUYU2$Y72%Y7YHYH2%2&YHYHYHYUYUYUYH2%YUY7Y7Y7YUYDYUYDYDY7YDY7YUY7Y7Y7Y7Y7Y71YY7Y7YGYGY7Y7YGYGYGYGY7YG1VY=Y=Y=1V1WX&X&X&1WX&X&X,X,X,W3V?V?V)V?Y4Y4Y41U1UY@Y@1V1V1WY4Y4Y@Y@Y4Y4Y8Y8Y@Y@1U1V1W1XYH1XYUYUY3YUY3Y3YHYU1WYUY,1WY,Y,1WY3Y,1XY3Y31XY,Y3Y3Y31X1XYUY31YYUYUY,Y,Y3Y3Y,Y3Z&Z&1WZ&1WZ&1X1YXRYVYLYLYVYVYLYLYLYLYL1WYUYUY3YUZ&Y;Z&Z&Z$1UZ$Z$Y;Z$Y;Y;Y7Y7YVYVYLYL1SYLYL1SYLYLYVYGYVYVYGYGYV1RYGYG1RYGYVYVYLYLYLYGYLYLZ$Z$Y;Z$Z$Z$Z$YEZ&1NZ&Z&Z$Z$1NYE1NYEZ&YEZ$1NYEYE1NYEYEYEYLYLZ$YEYEYGYEYEYEYGYE1LYEYGYGYG1KY=Y=Y=Y=Y=YGYGYGYGY=1JY=Y=Y=1JY=Y=Y=1JYGYGYG1JYGYGYX1JYGYX1JYX1J1KYQYN1K1LYGYGYN1LYGYGYGYGYG1LYGYGYG1LYXYX1LYNYXYN1LYNYNYNYN1LYNX.X.X.Y=Y=1KYNYNX.YNYNYNYN1J1KYN1KYN1LX.X.1LX.1LYGYGYGYN1LYG1MYGYGYG1MX.X.1MX.X.1MX.X.X.1MX.WOVN1MVNVNX.X.X.1MX.X.X&X&X.1LX&X&WHWH1LWHVYVYVN1LVYWHVYVYX&X&X&WGX&WHWHWHWGWG1IWGWHWGWHWGWHVYVYVYVY1GVYVYWGWGWGW=W=W=1FW=WGWG1FWGW=1FW=W3W=W=1FW3V=V=V=1FV=V=1F1GV=1GU>U>V=V=U>U>V=V=U>1FV=V=1FU>TWTWTTTTTWTWTTTTU>TEU>1DTT1DTTTT1D1ETLTL1ETLTLTLTL1ETLTLV;1EV;V;1ETU1F1GTUTUUGTU1FUG1G1HTUTUTLTLTU1GTUTU1GV;TUV;V;V;TUTU1FUKUPUKUP1FUPUKUP1FUPUPU-U-U-1FTBTBTBV2Y@Y@Y61E1EY6YI1FY@Y@1FYIYI1FYI1G1G1H1IY.YI1IYIYI1I1JY.Y.1J1KY.Y.Y'Y'1K1L1L1M1NY,1N1O1P1Q1QY.YI1RY.Y.1RY.Y.Y,1R1S1S1TYIYI1TY,1U1V1V1WZ)Z)YI1W1X1Y1YZ)1ZZ)1Z2#2$2%Y,Y,2%2&Y,2&Y,2'Y,Y,Y,2'Y,2'2(2)2)2*2+YKY,YKY,Y,2*YKYKYKYKYKY,YK2)Y,2*Y,2*2+Z)Z)2+2,Z)Z)2,2-2.Z#2.Y,Z#2/Z)Z)Z)2/Z)Z)2/20YM20YMYMZ)20212222YMYMYMY,Y,Y,2222232425Z#25Z#Z#25Z#Z#Z#2526Z#Z#2627YMYM2728292:2:2;Y?Y?2;2YK2>2?Y-2?2@Y-Y-Z&Z&Y-Y-2?2@Y-Y-2@Z&Y-Y-Z#2@Z#Z#Z#2@2A2B2BY-2C2DY02DY0Y02D2EY0Y0Y?2EY?Y?2E2FZ'Z'2F2GZ'Z'Z'Z'2G2HY0Y0Y02HZ'Z'Z'2HZ'2H2I2JY-Y-2J2KY-2K2L2M2M2NY0Y02N2OY0Y0Y0Y/2OY/Y0Y02O2PY0Y02P2Q2QY+2RY+Y02RY/2SY/Y/Y+2SZ&2SZ&Z&2SYEYEYE2SYY>Y>2JY>Y>2J2KY>Y>YBYB2KYBYIYI2KYIYB2KYBYBYIYIYBYBY>2JY>2KY>2KY>YBY>2KY>YBYIYIYBYBYIYIYB2JYIYI2J2KYIYI2K2L2LYM2M2NYI2NYIYIYMYM2NYM2NYMYIXRYIYIYI2N2NYMYIYMYIYMYIXR2MYMYMYMZ'2MZ'Z'YPYP2MYPYPYPZ'2MZ'2MZ'Z'2M2N2O2P2P2Q2R2SY/Y/Y+Y+Y+2RY+Y+YJYJYJ2RYJ2RYW2SYJ2SXRYWYWYWYW2SY+Y+2SY+2S2TYSYS2T2UYWY*2UY*Y*Y*2UY/Y/Y/2U2V2WYTY/Y/YTYTY/2VYTYT2V2WYTYTYSYTYSYTYTYTYTY*YTYT2UYTY/Y/2UY/Y/Y/2UY/2UYTYTYTYT2UYTYT2U2VYTYT2VY92WY9Y*Y*Y*Y9Y*2VY*Y*Y*Y9Y9Y92UY9Y*Y*YGYGYG2UWZWZY9WZYGYGWZWZY92SY92TY92TY9Y92T2U2VX#2VX#X#X#Y9X#Y9X#YGYGWZYGWZWZ2TWZYGYG2TYGYG2TYGVWX/VWX/VWX/X/2SX/VWVWX/VWVWVW2RVW2R2SX#X#2S2TX#X#2TX#X#X#X#VWX#2TVWVW2TVWX#VWX#X#WSWSVSVSWSWS2R2SVSVSX#X#VSVS2RVSVSVS2RVS2RWS2SWSVS2SVSVSWSWSVSWSVS2RVSVSWSWYWS2R2R2SVS2TWSWS2TWSVNVN2TVNWP2TWPVNVNVNVN2TVNVN2TWYWYW#W#W#2SVNW#W#VNVNW#W#W#W#2R2SVNW#W#W#W#2RW#W#2R2S2TWYWYWY2T2U2U2V2WW,WY2W2X2Y2Y2Z3#3$3$3%W#3&3&3'W#W#W,3'WS3(WS3(WSW,W,W,3(W,3(3)3*3+3+3,3-3.3.3/W#W#3/30W#W#VNVNW#W#3/WUWMWMWUWU3/WMWU3/30WMWU30WMWMWMWMWM30303132WTWUWUWU32WUWUWU32WU32WMWM32X+WMX+WMWMWM323233WTWTU>U>U>33U>TTU>UYU>32U>3333UYUYUYU>33XPV:3334V:V:V:34V:V:V:34V:U/TTTT34TT34TTUYUYTTTTUYTTUYTTUY33UYTTUYTTUYUYU/32UYUYU/U/UYTT31U/3132UUUU32TLTLTLTL32TLTLUPUP3233TLUPTLUPTLTLTL3232UPUPUPUPUP32UP32UP33UP33UPTLUPTLUPUPUP32YBYBYBYBYBS:3232YB33S:S:33S:S:S:S0S:33S0S033S033S0S0S0S033S034S0S0S034S034T'T'T'T&34T&Y9Y93435Y*35Y*Y*35Y9Y*XV35Y9Y*Y9WFW-WFWFW-34WF35Y9Y9W-W-Y9Y93435Y935363737W(W(W(W-W-37WF3738393:VZVZ3:3;3;3<3=W/3=W(3>W(3>3?VOVOW(W(VOVOW.3>S93?3?3@W63AY9Y93A3BY9Y9Y9W(Y93AW(W(W(W(W(3AW(3AVUVU3AY9W(W(3A3BVUVU3BVUVUVU3B3CVUVUWQVUWQWQX#X#3BX#3BX#VU3CX#X#3CX#3CX#X#X#VU3C3D3E3EX#3FX#3FX#VU3GVUVUVU3G3GX#3H3IVSX#X#X#3HVSX#X#VSVSVS3HVSVS3HVS3HVSX#VSX#X#X#W7VSVSW7W73F3GW7W7W73GW7W7W7W7X#3GW,3GW7W73GW7W7W7W7W7W73GW7W73G3HW7W93HW9W7W9W9W9W73GW7W7W73G3H3I3IW9W9W9W93IW93J3JW<3KW3FUFUFUIUIUI3EUIUIUH3EUH3FUHUH3FTHTH3FTHTAV%3FV%V5T+T+T+3FV3T,3FT,XFSASA3FSZSZ3FS=S9S9SHSH3EWQVMVMWQWQVMVM3DX-W)X-X-3DVXVXVXVXX-VXX*X*3C3DVX3DVXVXVX3DVXVXVXVXX*VXW0W0X*W03B3CWUWUUI3CUIU*TYV7TYV7V7V7V7UAT:T:3AT:3ATQTITITDTDTD3A3AV#TITIS=S=3AS4S=3A3B3CS=S=S=3CSVXW>W>W>W>W431W431W4W4W>31W432W?W?WLW?W?31W?W?Y$W?W$31W?W?WCWCU+U+U=U+U+U+U+U=U#U#3.U#U#U#U#3.S7S7S73.S73.XRSNSNSJ3.SJ3.SJSJSJ3.SJSNSN3.SJSNSNS7S73.SJSOSGSO3.SO3.3/SISOSOSO3/SISISI3/S8S83/S8SOS>SOS>3.S>SISISI3.3/3030SWSWSWS>30S>S>30SWS>SWSWSW30SW30S>S>S>30WCWCWCUB30V$V$V$V$V$30V.30V.V.V(V(T=30V(V(30U@T=30T=T=30U@T=U@T=U@T=T=V(U#3/V(3/U#V(V(V(V(3/V(V(V(V(U@3.V(U@U@SN3.SNSOSOSO3.SOSP3.SPSP3.SO3/30S>S>SP30SPS6S6S6SPSPSP3/S6S6S63/SR3/SR30S630SRSRW4WCW4WCU=U=U=3/U=V,V,V,V,U2Q2RU>U>2RV=U>U>U>U>2RU>2RV=U>U>V=V=U>U>2QTETETETLTLTTTTUT2PUTUTTLTLUTTLV?2OTLTLTLTUTL2OV;V;2O2PTUTUUGTUTL2OTLTLUG2OTLTL2OUGTLUGTLTLTL2OUGTU2OTLV;V;TU2OV;V;2OV;UKUK2OUKUPUK2OUKUPUKUP2O2OU$U$U$Y6YIY6YIY6Y6Y62NY:Y:YIYIY@2MY@YIY.Y.2MY.2MY.YI2NY.2NY.Y.2NY'2O2PY.Y.2P2Q2Q2RYI2SY'Y'2S2T2T2UY.Y.2U2VY.Y.Y'Y'2V2WY'2WY'2X2X2Y2ZY,2Z3#Y'3$3$Y,3%Y,3%Y,Y,Y,Y'Y'3%3&3&Y,3'Y,3'3(3)3*Y,Y,3*Y,Y.Y.3*3+Y.Y.YIYI3*Y.YI3+Y.YA3+3,Y,Y,YAY,3+3,YIYI3,3-YIYIY,Y,3-Y,3-3.YIYI3.YIYIYIYIYIYI3.YIYIZ)YIYIZ)Z)3-YI3-YI3.3.YI3/YIZ)Z)3/Z)YIZ)YI3/YI3/YI3030YM31YMYIYI3132YMYM32YM3233YIYI33Y,343535Z&36Z&36Z&37Z&Y,Y,3738Y,Y,Y,38Y,3839YK393:YKYKY,Y,Y,YKY,39YKYK39YKY,YK39YKYKYKYI39YI3:3:Y,3;Y,3;3<3=3>3>3?3@Z)3@3AZ)Z)3A3BZ)Z)3BY,3C3DY,Y,Z#Y,3CZ#Z)Z)Y,Y,Y,Z#Z#Z#Z#3B3BYM3CYMZ)Z)YM3CZ)YM3CYM3CYMYMYMZ)Z)3C3D3DYMYMYM3D3EYMYMZ)YM3EYM3E3FY,3GY,Y,Y,3GY,Y,Z#Z#Z#Z#Z#YMZ#Z#YMYMY,3DZ#Z#Y,3D3EZ#YKYKZ#Z#YKZ#Z#Z#YMZ#YMYMZ#Z#YMYMZ#Z#YMYMZ#Z#3@3AYMY?YM3AY?Y?3AY?Z#Z#3AZ#Z#Z#Z#Y?YM3@3A3B3BY?3C3DYKZ&YKYKZ&Z&3CZ&YKYKZ#YKYKYK3BYKYKYK3B3CZ&Z&YKYK3B3CYKYK3CZ&3D3EYKYK3E3FYKYK3FY-YKYKY-Y-YK3EY-Y-Z&Z&Y-Y-3DZ&Y-Y-Z&Z&Y-Y-Z&Z&Y-Y-Z&Z&Y-Y-Z#3AZ#Z#3A3BZ#Y0Z#Z#Z#3B3BY03CY03CY-Y-Y-3CY-3D3EY-Y-3EY-Y03EY0Y03E3FY0Y03F3GY0Y03GZ#Y?Y?3G3HY?3I3IY03JY0Y?Y?Y?Z'3IZ'Z'Z'Z'Z'YPZ'Z'Z'YPYPY0Y03GY0Z'Z'YPZ'Y0Z'Z'Z'Z'Z'3E3FZ'Z'Z'3FY-Y-3FY03FY0Y0Y0Y-Y-Y-3F3FY0Y0Y03FY0Y0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-3D3E3E3F3G3HY03H3IY/Y0Y0Y03IY03IY03J3JY0Y+Y+Y03J3K3LZ'Y+Z'Y+Z'Y+Z'3KY0Y03KY/3KY/Y/Y/Y/Y/Y+3KZ&YEZ&3KYEYE3KYEZ&YTTU>3@U>3@U>TTTETETTTTTTTLTLTLTUTUTU3>TUTUTU3>3>U0U1U0TUTU3>3?TUTUTU3?TUV;3?V;TUTU3?3@TU3@3AUP3AU0TLU03AU03BU03BU53CU5TLU3TLTLU5U5TL3BTL3BTLTLUPUP3BUP3BUPUPUPU9U9U93B3B3C3D3EV;UP3EUP3EV;3FV;3F3G3H3IV;V;3I3J3JUPUPUPYB3J3KY>YBYBY>3KYBYB3KY>YBYBY>Y>Y>3JY>3K3KYI3LYBYBYIYBYBY>YBY>YBY>YBY>YBYBYBY>YBYBYB3HYB3H3IYBYB3IYI3JYBYIYI3JYB3J3KYBYBYIYBYBYB3J3KYIYIYIYMYIYIYMYM3JYMYIYIYI3JYMYM3JYM3JYM3KYMYIYIYI3KYIYMYIYI3J3KYMYMZ'YPZ'Z'Z'YPZ'3JYPYP3JYPZ'3JZ'Z'YPYP3J3KYPYJYPYJZ'3JZ'Z'3JYJZ'YJZ'3JYP3K3KY+3LY+YP3LYPYPY+Y+YPY+Y+3KY+3LYJYJ3LYWY+Y+3LY+Y+Y+3L3M3MYW3NYWYW3NYWYWY+Y+3NYSY+3NYSYS3NYSYSYSYSYSYWYSYSYS3M3NYSYSY*Y*Y/Y/3MY/YT3MYTYT3MY/YTYTYTYTY+Y+Y/Y/YT3LY/Y/3LY/3L3M3NYTYTYTY*Y*Y/Y/Y/3MY/Y/3MY/YT3MYTYTYTY/YTYTY/Y/YT3LY/Y/3LY/YTYTYT3LY*3LY*3MY*3MY*Y*Y9Y9Y*Y93LWZWZWZWZX/3LX/Y9X/X/X/X/X/Y93KX/X/3K3LX/X/3LX/Y9Y9Y93LX#X#Y9X#WZWZWZVWVWYGVW3JYGYGYGVWX/X/3IVW3IVWX#X#3IVWX#X#VWVW3IVWX/X/VWX/3HVWX/X#VWX#X#X#VWVW3GVWVWVW3GVWWSWSVS3GWSWS3GWSVSVSX#X#VSVS3FVSWSWS3FWSVSWSVS3F3FWSVSWSVS3FVSVSWS3FWS3GWSWSVS3GWSWS3GWSVS3GVSVS3GWSVSVSVNVNWP3G3GVNVNVNVNVN3G3H3HWY3IWYVNVN3I3JW#W#3J3KW#W#3KW#3K3LW#W#VNVN3L3M3MWYWYWYVNWYWYWY3L3MW,W,WYWY3M3N3N3OWYWY3O3PW,W,WYW,3PW,WYWYWY3PW,3PW,W,3PW,W,W,WYWY3P3QWY3QWYWYW,3Q3R3S3SWYWY3T3T3UW#W#3UW,W#W#W#W#W,W,W,3T3U3V3V3WW#3XW,W,3XW,WSW,3XW,3XW,WSWSW,W,3XW,3XWYWYWY3X3YWYWYWYWY3YWYWYWYWY3Y3YW#WY3ZW#W#3Z4#4#4$4%W#4%4&W#W#W#4&W#W#4&4'W#W#VNVN4'4(VNVN4(4)WUWUWU4)WUWUWUWM4(4)4*WMWU4*WUWM4*WMWMWMWM4*WTWTWMWMWM4*4*4+WTWT4+WTWTWTWU4+WUWUWUWM4+WM4+WUWMWMWUWU4+X+WMWMWM4+WT4+WTWT4+WTWTWT4+UYU>UYU>UYU>4+4+4,U>UYUYUYU>UYU>U>V:V:U>U>4*4+U>U>V:V:4*4+V:V:4+4,4-UY4-TTTTTTUYTTUYTT4,TTUYTT4,U/U/U/4,U/U/U/UU4,UUUU4,TT4-TT4-TLTLTLTL4-TLTLTL4-TLU:4-UPU:UPTL4-TLUPTLUP4-UPUPUP4-UPUPUP4-4.TLUP4.UP4.UPTLUPYBYB4.YBYBYBS:S:YBYBYB4-YB4-S:S:S:S:S:4-4-4.S:4/S0S04/S04/S0S:S0S0T'S0S0S0T'S0T'S0S0S0T'S0T'T'T'T'T&T'T&4*Y9Y9Y9Y9Y94*Y9Y*4*Y*Y*Y*Y9Y*XVY9Y9Y94)W-W-4)W-4)4*WFWFY9Y9W(W(Y9Y94)Y9Y9Y9Y94)W(4)W(W(Y9W(W(W(W(W(4(W(4(WFWFWFVZ4(VZVZ4(4)VZVZVZVZVZ4)VZVZ4)W(W6VZW6W6VZ4(W6W6W6W6W64(W6W64(4)W64)W64*VZ4*4+W(4+W(W6W(4+4,VO4-W(W(4-W(W6W6W.4-4-W6W6W6W6W6W6W/4,W/W/VOW6VOW64,Y9Y9W(W(4+Y9W(W(Y9Y9Y94+W(4+W(W(W(VU4+VUY9Y94+Y9Y9Y9W(4+Y9Y9VUVU4*VUVUVUY9Y9VU4*Y9Y94*VUX#X#4*X#VUX#VU4*X#X#VUVUX#X#VUX#4(X#VUX#4(X#X#X#VU4(VU4)4)X#4*X#X#X#VUX#4)X#VUVUX#X#VU4)VUX#VUVUVUX#VUVUVUX#VUX#VU4&4'VU4'X#4(X#X#VSX#X#VSVS4'4(VSVS4(4)4)4*X#VSVSVSVSW7VSVSW7W74(WS4)4*X#W7X#X#4)W,4*4+4+W7W7W7W7W74+W9W7W7W9W9W74*W9W9W9W9W7W9W7W7W74)4)4*W7W74*4+4,W9W7W9W9W94+W9W9W9W94+W9W9W94+W9W9WW>W4W4W>W>W4W>W>W>4%4&4&4'W4W4W?W$W?W?W$W?4&W$U#U#T-4&U#U#V(U#S7S7SNS7S7S7S7SNSNSJSNSJSJ3ZSJSJ3ZSJ4#4$SJSJSNSN4#4$4%SJ4%SG4&SGSGSGSG4&SO4&4'SISO4'SO4(SI4(SISI4(S8SOS8SGSG4(SISISISI4(4(S8S84)S>4)S>S>SGSWSGSWSWSWS>4(SWSW4(SW4(SWS>SWSWS>S>S>WLWC4'WCUBV$V$V$V$4&V$TPV.T-V.V.V(V(4%4&V(V(4&4'4'4(T=T=T=4(T=T=V(U#V(V(U#U#U#4'V(V(U@4'V(V(4'V(SNSOSNSO4&SOSPSO4&SOSPSPSOSOSPSOSPSPSP4%SOSOSPSOS>S>SP4$SP4$SPSPS6S64$S64$S6SR4%SR4%SRSRS6S64%S6U=4%V,V,4%T1T1T5UV=U>V=V=3T3UU>TETETEUT3TUTUTV?V?3T3UUGUG3UUGV;V9V;3UV93U3VV;UGUGTLTLTUTUUGUG3TUG3UTLTL3UTLTL3UTU3VTLV;V;TUTUV;V;3UTUUKUK3U3VUPUPUP3VUK3VUPUPU-U$U$U$Y6Y6Y6Y:Y@Y@Y@YIYIY.YI3SYI3SYIYIYIY.YIYIY.Y'Y.Y.Y'Y'3QY'Y.Y'Y.Y.3PY.Y.Y.Y.3P3Q3R3R3SYI3TY.3TYIYIY.Y.3T3UYI3UYIYI3UY'Y.Y.3U3VY.Y.Y'Y'3V3W3WY'Y.Y.3WY'Y.3XY'Y'3X3Y3Y3ZY.Y.3Z4#Y.Y.Y'Y'Y'4#4#4$Y'4%Y'Y'4%4&Y'Y'4&Y,Y,Y,4&Y,Y'4&Y'Y'Y'4&Y'Y'4&4'4(Y,4(Y,Y,Y,4(Y,Y,Y,Y'4(4)4*Y'Y'4*4+Y'4+Y'4,4,4-4.4/4/Y,40Y,Y.40414242Y,Y'434344Y.Y.Y'44Y.Y.Y,Y,44Y,YI44YIYI4445YIYI4546YIY.Y.Y.YIYIY.YAY.45YAYA45YAY.45464747YA4849YAYA49YA49Y,4:Y,Y,Y,4:4;YI4;YIYI4;44>YIYIYIZ)Z)4>4?Z)Z)YIYIYI4>YMYMYIYMYI4>4>YMYMYMYMYM4>YMYI4>4?YMYIYMYMYM4>YMYMYMY,Y,YIYIY,Y,YI4=Y,Y,4=Y,YI4=4>4?4?Y,Y,Y,4?Z&4@Z&Y,4@Y,4AY,4A4BZ&Y,4BY,Y,Y,Y,YKYKY,YK4AYKY,Y,Y,4A4A4BYKYK4BYKYKYK4BY,4CY,Y,4C4D4EY,Y,Y,YKYKYKY,Y,Y,YKYKYK4B4C4DY,4DY,Y,Y,YIY,4DY,4DY,4EY,4EY,4F4GY,Y,4GY,4G4HZ)Z)4H4IZ)Z)Y,Y,Y,4IY,Y,4IY,4IZ)Z)Z)Z)4IZ)4J4J4KZ)4LY,Y,4LZ)Y,Y,4LZ)Y,Y,4LY,Z)4LZ)Z)4LZ#4MZ#Z)4MZ)4NZ#Z#4NYMZ)Z)Z)YM4MYMYMYM4M4NYMZ)Z)4N4OYM4O4PYMYMZ)4PZ)Z)4PYMYMYM4PZ)YMYMYMZ)YMYMYMYM4OYM4O4PYMYMY,4PY,4Q4Q4RZ#Z#Z#Z#4RZ#Y,Z#Z#Z#4QZ#Y,Y,Y,Y,4Q4RY,Y,Y,4RZ#Z#YMY?Z#Z#Y?4QYM4QYM4RY?Y?4RY?Z#Z#4RZ#YM4RYMYMYMYMYMZ'YMYMZ'4Q4QY?4R4SYM4SY?Y?4SY?Y?Y?Z&Z&YKYKYKYK4RYKYKYK4R4SYKYK4SYKZ&Z&4S4TZ&Z&YK4TZ&Z&4T4UYK4UYKYK4UZ&4V4WYKYKYK4W4WYK4X4YYKYKY-Y-YKY-4XY-Z&Z&Y-Y-Z#4WZ#Z#4W4X4Y4Z4ZZ#Y0Y0Z#4Z5#Y0Z#Y0Y0Y0Z#Y0Y0Y04YY-Z#Y-4YY-Z#4ZZ#4ZZ#5#5#5$Y0Y0Y-Y-Y05$5$5%Y0Y0Y-5%Y0Y05%5&Y0Y05&5'Y0Y05'5(Y0Y0Z#Z#Z#5(Z#Y?5(Y?Y?Y0Y?Y?Y?Y?Y?Z'Y0Y05&Y05&Y0Z'Z'Y?5&Z'Z'Y0Y05&Y0Z'5&Z'YP5&Z'YPYPZ'Z'YP5&Y0Y05&Y0Y-Y-5&Y-Y-Y0Y0Y0Y-Y-5%Y05%5&Y0Y0Y0Y-Y0Y0Y-Y-Y0Y0Y-5$Y-5%5%YYYYYY5%5&5'Y0YYYY5'YYY0Y/5'Y/Y05'Y0Y/Y0Y0Y0Y+Y0Y0Y05&5&Y+Y+Y+Y0Y05&Y0Y0Y05&Y0Y+Y/Y+5&Y/Y/5&Y/Z'Z'Z'Y+Y05%Y0Y0Y0Y/Y/Y/Y+Y/5$Y/Z&YEZ&Z&YEYEZ&5#YEYE5#5$Z&Z&Z&YTT4WTT4WTTU>TTTUTU4WTUTUTUTU4WTL4WTLTLTUTU4WTUTUTU4WTUTU4W4XV;4X4YV;V;TUTUTU4YTUTU4Y4Z4ZV;TUV;TUTU4ZUPTLU0TLU0TLU0TLU0TLU0TLU0TLU5TL4W4WU5U5TLTLU4TL4WTL4WTLTLUPUP4WUP4WUPUPUPU9U9U9UPU94VU9U9UPUP4VUPU9U9UPUPU9UPUPUPV;UPV;4T4TV;4UV;4UV;4VV;V;4VV;V;UPUP4VUPV;V;UPUP4UUPUPUPV;V;V;4UV;V;4UUP4UUPUPUPYBYB4UY>4UY>Y>Y>YBYBY>Y>YBYBY>Y>YBYB4SYB4SYBYBYBYBYI4SYI4S4TYBYBYBYB4TYBY(4TY(Y(4TYIYBYBYIYI4T4U4UYIYBYBYBYIYBYBYIYI4T4UYIYI4U4VYI4VYIYIYMYMYIYIYM4UYIYIYI4UYIYIYMYMYIYIYIYM4TYM4TYMYIYMYIYIYIYMYM4SYM4T4TYM4UYMYPYPZ'YPYPYPZ'YP4SYPZ'YPZ'YPZ'Z'YPYP4RYPZ'4RZ'Z'Z'YPZ'4RZ'Y+YPYPYPYPYP4QY+Y+YPY+4PY+Y+Y+YP4PYPY+Y+Y+Y+YTY+YTY+Y+YJYJYJYWYJY+Y+Y+YWY+YWYWY+Y+YWY+YJYWYJYWYJYWYJYWYWYS4H4IY+Y+YS4IY+YSYSYSYSY+YSYSYSYSY*Y*YSYSY*Y*4EY/4F4GYT4GYTY/4GY/Y/Y/Y/Y/YT4GY/Y/4GY/Y/Y/Y/4GY/Y/4GYTY/4GYTYTY/Y/Y/4GY/Y/4GY/YT4GYTYTY/Y/YTYTY/Y/YTYTYTY9Y9Y94DY94EY9Y*Y9Y9Y9Y*4DY*4EYGYGYG4EX/X/Y9X/Y94DY9Y94DY9Y9Y9Y9X/Y9Y9X/X/4CX/Y9X#4C4DVWYGVWVWVWVW4CVWVWVW4C4D4DVWX#X#VWVW4D4EX/VW4EVWVWVWX#X#VWVW4DVW4DWSVSVSWSWSVSVSVSVS4CVS4CWS4DWSWSWSVSWS4CWSVSWSVSWSVS4CWSWSWSWYWS4BWSWSWSWSVSVSWSWSVS4AVS4AVS4BWSWS4BWSVNVN4B4CWPVNVNVNVN4BVN4C4C4DWYWYVNVNVN4D4DWYWYWYVNVNW#W#VNVNW#W#W#W#W#4BW#W#4B4CW#W#WY4CW#4CW#W#VNVN4C4DVNWYVNWY4CWYWYWY4CWYWYWYWYWYWY4CWYWY4CWY4C4DW,W,4D4EW,W,WYWY4E4FWY4FW,W,4F4GW,W,4G4HW,W,WYW,W,W,WYWYWYW,WY4FW,W,4FW,W,W,WYW,W,W,WYWYW,WY4D4EWYWYW,4E4F4GW,WY4G4HWYWY4HWY4HWYWYWYWYWY4H4IW,W,W,4IW,W,4I4JW,W,W#W#WYWY4I4JW#4JW#W#4JW#W#W#4JWY4KW#4KW#4LW#4L4M4N4OW,W,WSWSWSW,WSW,4M4NWSWSW,W,W,4NW#4NWYWYWY4NWYWYW#4N4O4PWYWY4PWYWY4P4QW#W#W#W#4Q4Q4RWYWYW#W#4R4SW#W#4S4TWYWYWY4TWYWY4TWY4TWYW#W#4T4U4V4W4W4XW#W#4X4YW#4ZWY4Z5#W#5#W#W#W#W#5#W#W#5#W#W#W#W#5#W#W#5#W#W#W#WUWU5#5$WUWUWU5$WUWM5$WMWU5$WMWMWU5$WUWMWUWU5$WMWMWMWT5$WM5$WTWTWM5$5%5&WMWMWTWTWMWT5%5&WUX+WU5&WU5&WMWMWUWU5&WMWUWUWUX+WMWT5%WTWM5%WTWTWM5%5&WTU>UYU>UYUYUY5%UYU>5%U>U>5%UYUYUY5%5&V:V:5&V:V:V:U>U>V:5&U>U>5&5'U>5'V:UY5'UYUYUY5'UYU/U/5'5(5)5*UYTTUYTT5)5*U/U/5*5+U/U/5+5,UU5-TTTT5-TT5-TTUUUU5-TLTTTLUPUPTLUPTLTLU:U:U:UPU:U:TL5*UPUPTLUPUPUPTLUP5)UPTLUPTLTLUPUP5(UPTLTLTL5(TL5(TLTL5(YBY>YBYBYB5(YBYBS:5(S:5(S:S:S:S:S0S:5(S0S05(S0S:S0S:S:S0S05'S05'S0S:S0Y9Y9Y*Y*Y9Y9Y*Y*Y*Y9Y*Y*Y9Y9Y9Y*W-W-5#5$WF5$WFWFW-W-WFWFY9Y95#W(Y95#W(W(Y9Y9W(Y94ZW(W(W(W-4ZWFWF4Z5#VZVZ5#5$VZVZ5$5%VZW(VZVZVZ5%VZVZ5%W(VZ5%VZW6W6W6W6W/5$5%W/W/W6W6W6VOW6W/5$W/W6W/W6W6VZW(VZW(VZVZ4Z5#W65#W6W6W6W(VOVOW(W(VO4ZVO4ZVOVO4Z5#VOVO5#W65$W6W.5$S9W6W6W/5$W/5$VO5%VOY9Y9Y9W(Y9Y9W(5$W(W(W(5$W(5$VUVUY9Y95$Y9Y95$VUVUW(VUW(VUVU5#VUVU5#VUVUVU5#X#5$X#X#X#VUX#VUX#VUX#VUVU4Z5#VUVUVU5#VU5#VUVUVUX#5#X#5#X#VUX#VUVUVU5#5#5$VUVU5$5%VU5&VUVU5&VUX#X#5&X#VUX#VU5&VSVSX#5&VSVS5&X#VSVSX#5&VSVS5&VSX#5&X#X#5&VSVSVSWSWSW7WSW75%W7W75%W7W7W7W,W,5%W,W75%W7W75%W,5&W7W7W75&W75&W95'W95'W95(W9W7W9W7W9W75'W7W75'W9W7W9W7W7W75'W7W7W75'W75'5(5)5)W95*W9W9WT>T>5'5'5(UIUIUHTHUHTHUHTHUHTH5&THTATAVW>5#5$W>W>5$5%5%WVWVWVWVWV5%5&W$5&W?W?5&U#5'U#SJS75'S7SNSNSJSJSJSJSNSJSJSJSJSNS75$S75%5%5&SJSJS7SJSJSJSOSG5%5&5&SGSOSGSGSGSISGSOSO5%SISO5%SOSISOSI5%SI5%SISOSOSISISIS8SO5$SOS8SGSGSG5$SIS>SIS>5#5$S8S8S85$S8S85$S>S>S>SWSWS>5$SWSW5$SWS>S>5$SWWLWCWCWCV$5#V$TPT=V(V(V(V(V(4ZV(T=V(T=4ZV(U@U@U@V(4YT=T=4YT=T=T=4YU@T=T=U#V(V(V(V(V(U@U@V(V(U@U@4VSOSPSPSOSPSPSPSP4USPSPS>S>SP4U4US6SPSPS6S64US64US6SRS6S6S6SR4USR4USRSR4US64V4WU=V,V,V,4VT1T1T1U<4VTGTGTGTG4VTGTPTP4VTPTGTGTG4V4VSPSDSPS6S6S64VSDSDSD4V4VSESESET1T1T5T1T0T;T0T0T/4TT/T/4TT0T/T0T0T0T04TT0T;T04TT04TT0T04TT;4UT;4UTGT;TGT;T;T;4UV.V.4UV.4UV.T0T0T04UT0V.T0T04U4VT;T;4V4WT04WV.V.SCSCSCSESCSCSC4VSE4VSSSS4VSSSSSSSESE4VSS4VSSSSSSX;4VXDXD4VXDXDXDT3T3T5T3T54UT5T5T3T34UT5T3T3T54U4U4VT5T5T3T34VT5T0T0T7T0T0T04U4VT04VT0T.4V4WT.4XT0T0T.T.4WT.T.T.T0T04WV.4WUMUMUMUMV.UM4WV.V.4WV.T0T0T04W4WUMT0UMT04WT0T0T04WT04XT0T04XT0T0T0T.4XUMUM4XUMV.V.V.4XV.V.4XV.4XUMUMUMUMUMT.4XSESSSE4XXDXD4X4YXB4YXBXBXDXD4Y4ZXDXD4ZXBXB4ZXBXB4ZT.T5T54Z5#T4T4T/T/T4T4T/4ZT4T44ZT/T4T4T/4ZT4T4YUY7YU4ZY7Y7YUYUY7Y74YY7YU4YYUYU4YY7YUYUYUYUYUY7YU4XY7Y7X.X.X.4XX.X.4X4YX&4YX&X&4YX&X&X&4Y4ZX&X&Y4Y44Z5#5#5$5%Y@5%5&Y@Y@Y@Y@5&5'5'Y4Y4Y4Y@Y@5'5(Y,Y,5(Y,Y'Y'Y,Y,5'Y,5(Y,5(Y,5)Y,YHYH5)5*YHYH5*YHY3Y3Y,Y,Y35)Y,Y,5)Y,Y,Y,YUYUY3YUY3YUY35(Y,Y,Y,Z&Y,Z&Y,Z&5&Z&Z&Z&Y,Z&Y,5&Y,5&Y,Z&YLYLZ$Z$YLYLZ$5%YV5%YLYLYVYV5%YV5%YLYLYL5%5&5'YG5'5(YXYNYNX.X.X.YN5'YNX.YNYNYN5'YNYN5'5(YNYN5(YNYNYN5(5)5)X.5*X.X.X.YNYNX.X.5)X.YNYN5)X.5)5*YGYGYGYGYG5*YG5*YGX.YGYGYG5*5*X.X.X.YG5*X.X.YGYGX.YGYGYGX.5)X.X.WO5)X.X.X.X&5(5)X&X&5)X&X&X&WGWGW=5)5)WGW=W=W35)W3W3W=W=W=W3V=V=V=5(V=V=5(V=V=V=V=5(V=V=5(5)V=V=V=5)V=V=5)V=5)TLUT5*5*5+V?TL5+TLTLTL5+UG5,5-5-V9V;5.5.V;V;V;5.5/V;V;UGUG5/UG5/50TLTLTLUGTL50UGUG50TU50TLTLTL5051TUTUUKUKUK51UKUK51UKUPUKUPUKUKUK50UKY.Y.YI50YI50YIYIY.Y'Y.50Y'Y'Y.Y.Y.Y.5/505051YIYI51YIYIYIY.Y.5152Y.Y.52Y.5253YI54Y.Y.Y.545455YIYI55Y.56Y.56Y.YIYIY'Y'56Y'Y'Y'56575758Y.Y.Y'Y'5859Y'Y.595:Y'Y'Y.Y'Y'Y'Y'Y.Y.Y'Y.Y.57Y.Y.Y.Y.Y'Y.57Y.57Y.Y.Y'Y'57Y.Y'57Y.Y.57Y'5859Y'Y'Y,Y,Y'58Y'Y'Y,Y,Y'Y,Y'57Y'Y'Y'57Y,Y,5758Y,Y,Y'Y'Y,Y,Y,Y,57Y,Y'Y,Y'Y'Y,56Y'57Y'Y'Y'57Y'5758Y,Y'Y,Y,Y,Y,Y,57Y,57Y,Y,Y,Y'57Y'Y'5758Y,Y,58Y,Y,Y,58Y.Y.Y.Y'58Y.59Y'Y'Y'59Y'59Y'5:Y'5:Y'Y'Y,Y,5:Y,Y'Y'Y'5:Y,Y,5:Y,5:5;Y,Y,5;Y,55?5?Y'Y'Y'5?Y'5@5A5A5BY'5C5C5DY.5EY'Y'5EY'5E5FY'Y,Y,Y,Y.Y,Y.Y.YIYIY.Y.YI5DY.Y.5DY.Y.5DYIYIYIY.YIY.Y.YAY.5CYAYA5CYAY.Y.Y.5CYI5CYIYI5C5DYIYI5DYAYAYAYAYA5D5EYAYAYA5EYAYA5EYIYAYA5E5F5FY,YAY,YI5FYI5GY,Y,5GY,5GY,YIYI5G5H5IYI5I5JYIYIY,Y,5J5KZ)Z)YIYIYI5JZ)Z)Z)5JYIYI5J5K5LZ)5L5MYIYI5MZ)Z)5NZ)YI5N5O5O5PYIYIZ)Z)YIYIZ)Z)YIYIYIYIYMYMYIYMYI5MZ)Z)YMYMYMYM5LYMYIYI5L5MYIYMYIYI5LYMYMYMY,5LYIYIY,Y,5LY,YI5L5M5NYIYI5NY,5NY,Y,Y,5NY,Y,Y,Y,Z&5NZ&5NZ&5OZ&Y,Z&5OZ&5OZ&Y,Y,Y,5OY,5PY,Y,Y,Z&5OZ&5PZ&5PYKYKYKY,Y,Y,5PY,Y,YKYKY,Y,YKYKY,YKYKYKY,Y,5MY,YKY,YKYKY,5L5MZ&Y,5MY,5N5NZ&Z&Z&YIYIYI5NYI5N5OY,YI5OYI5P5P5Q5RY,YIYIYI5RYI5RYIYIYIY,5RY,5RY,YIY,5RY,YI5SY,Y,5SY,Y,Y,Y,5S5SZ)Z)Z)5S5TZ)Z)5T5UZ)Z)Z)5UZ)Z)Y,Y,Y,5UY,Y,5UY,5U5VZ)Z)Z)Y,Z)Z)5UZ)Z)Z)Y,Y,5UY,Y,Y,5UY,Z)Y,Z)Z)Y,Z)Z)Z)5S5TZ)Z)Y,Y,Z)Y,Y,Y,Z)5SY,Y,Z#Z#5RZ#5SZ#Z)Z#Z)5S5SZ#5TYZZ#Z#Z#YMZ)Z)Z)YMZ)Z)YMYMZ)Z)YMZ)Z)Z)Z)YMZ)Z)Z)5O5OZ)5P5QZ)YM5QYMZ)Z)Z)5Q5QYM5RYMYM5RYMYMZ)5RYMYMZ)Z)Z)5RZ)YM5RYMY,Y,Y,5R5RZ#Z#Z#Y,Y,Z#Z#5QZ#Z#Z#Y,Z#Y,5QY,5QY,Z#Y,Y,Y,5QY,Y,5QZ#Y,Y,Y,Z#Y?Z#Y?Y?YMYMYMY?5NY?5O5PY?Y?5PY?Z#Z#Y?Y?YMYMYM5OY?Y?Z'5O5OY?Y?Y?5O5PYMYMY?Y?5P5QYMYM5QYM5QY?5R5SYKYKZ#YKYKYKYKZ#YKYKZ#5QYKYK5QYKZ&Z&YKYKZ&YKYKYKZ&Z&YK5OZ&Z&5O5PZ&Z&5PZ&YK5PYKYK5PZ&YK5QYK5QYKYKZ&Z&5QZ&YKYKYKY-YKYKYK5P5PY-Y-Y-5PY-Y-Y-YKY-Y-Y-YK5OZ#Z#Z#Z#Z#5OZ#Z#5OY0Z#Y0Z#Z#Y0Y0Z#Z#Z#Z#5MZ#Z#Z#5MZ#Z#5MY0Y05MYKZ#YKZ#5MZ#5N5N5OZ#5PZ#5PZ#5QZ#5QZ#Y05QY-Y0Y0Y-Y-Y0Y0Y-Y-Y05PY05PY0Y0Y-Y-Y0Y0Y-Y-Y0Y0Y-Y-Y05NY-Y-5N5OY-Y-5O5PY-5PY0Y05PY-Y0Y05P5QY0Y0Z#5QY?Y?Z#5Q5R5SY0Y05SY05SY0Y?Y?Y?Y?Y?5SY0Y05SY0Z'Z'5S5TZ'Z'5TZ'5TZ'YP5UY0Y05UY0Y-Y-5U5VY05VY0Y0Y-Y0Y0Y05UY0Y0Y0Y-Y-Y-5UY-YYYYYYY-YY5TYYY-Y-Y-5TYYYY5T5U5U5VY0Y0YYYYY0YYY0Y/Y/Y/Y0Y/Y/Y/Y0Y0Y05SY05SY+Y+Y0Y05SY0Y0Y0Y05SY+Y/Y+Y+Y/Y/5R5SY05SY0Y/Y+Y+Y+Y/5RYEZ&5SY<5SYU>U>5H5H5IU>U>TUTU5I5JTUTU5J5KTL5KTL5LTUTU5L5MTUTU5M5NTUTU5N5OTU5OTU5PTUTU5PV;TUV;V;V;TUTUTU5OTUTU5O5PTUTU5P5QTU5QTU5RTUTU5RUPTLU55RU5TLU5U5U5TLU4TLU4TL5PTLTLU0UP5PUP5PUPU0UPU9UPU95P5PUPU9U95PUP5QUPTUTUTU5QTU5Q5RV;5RV;5SV;5SV;V;V;5SUPV;V;5SUPV;5TV;UPUPUPV;V;V;5SV;UP5SUPUP5SUPUP5S5TY>Y>YB5T5UY>Y>Y>Y>5U5UYBYBYBYBYBYB5UYB5UYBYB5UYIYBYBY>YB5UYBY(5UY(Y(YIYIY(Y(YI5T5U5VYIYI5VYIYB5VYBYBYIYI5V5WYIYIYBYBYIYI5V5WYIYI5WYIYIYMYIYMYMYM5VYMYIYI5V5WYIYM5WYM5WYMYIYMYMYMYM5WYM5WYMYMYMYM5W5X5X5YYMYM5Y5ZZ'6#6#YPZ'6$6$YPZ'Z'6$YJZ'6%YPYPYP6%YPYPYPY+YPY+YPY+YW6#YW6$6$YSYSYSY+Y+YSYSY/Y/6#Y/Y+6#Y+Y+6#6$Y+Y+YTYT6$Y/YTY/Y/Y/YTY/YTYTY/Y/5Z6#Y/Y/6#6$6$YTYTYT6$YTYTYTY/Y/Y/6$Y/Y/YT6$6$YTYTYT6$Y96%Y9Y*6%Y*6&Y*Y*Y*Y9Y*Y9Y*Y9YGWZYGWZX/X/Y9Y9X/X/Y9Y9X/X/Y9X/Y9Y95X5YX#X#5YX#VWVW5YVWVWVWX#X#5XVWX#X#X#5XX#X#VWVWX#X#VWVW5W5XX/X/5XVWVWVW5X5YWSWSVSVSX#VSX#X#5WWSVSVSVSVSVSWS5VWS5WWSVSWSVSVSWSWS5VW,5VWSVS5WWSWS5WWSVS5WVSVS5WWSVSVSWP5WWPWPVNVNWP5WVNVNVN5WWY5WWYWY5W5X5YWY5Y5ZWYWYVNWYWYWY5Y5ZWYWYW#W#W#5ZW#W#5Z6#6#WYWYWY6#W#WYW#VNVN6#6$W#6$W#W#VNVNW#W#6#6$WYWYVNVNWYWYWYWYWY6#WYWY6#W,W,6#W,W,WYWYW,W,WYWYW,W,WYWYW,W,WY5XWY5Y5YW,W,W,WYWYWY5YWYWY5YWYWYWYW,5YWY5Y5Z6#6#W,6$W,WYWYWY6$WYWYW,W,W#W#WY6#W#W#6#WYW,W,W,6#W,6#W,WY6#6$WYWYW,WYW,W,WYWY6#6$WYWY6$WY6$WYWYWYWYWYWY6$WYWYWY6$W,W,W,W#W,W,W#W#5Z6#W#W#W,6#W,W,6#6$6%W#W#W,W#6%W,W,6%6&WYWY6&W,6&W#W#W#6&W#6'W#6'W#WYW#WYWYW#6'W#W#6'W#W#6'W#W#6'W#W#W#WS6'WSWS6'W,WSWSW,6'W7W7W#6'W#WY6'W#WYW#W#W#6'6(WY6(WYWY6(6)WYWYWYWY6)WYWYWYWYW#WYWY6(6)W#W#6)6*WY6*WYWYW#W#6*W#W#6*WYWY6*W#WYWYW#W#6*6+W#W#WYWYWYWYWYW#WYWYW#WYWYWYW#6(WYWYWY6(WYWY6(6)WY6)6*6+6+W#W#W#6+6,W#W#6,W#W#W#6,WYW#6-6-WY6.W#W#6.W#W#WYWYW#W#6-W#W#W#6-6.W#W#W#6.W#W#6.6/W#W#VNVN6/60VNW#60W#WU60WUWM60WUWMWMWU6061WM61WMWMWM61WM62WMWUWMWUWMWU61WMWM61WMWT6262WT63WTWMWMWM63WM63WTWT63WTWTWTWM63646565WTWTWTWUX+WUX+WUWUWU6464WMWMWMWM64WMWMWMWM64WMWMWM64WTWT64WTWT64UY65UYU>65U>6666UYUYUYU>66V:V:6667V:V:6768V:V:U>68V:V:6869V:V:696:V:V:U>U>6:6;U>UY6;UY6;UY6<6=TTTTUYUYTTTT6TTTT6>TT6>6?UUUU6?TTUU6@UU6@UUUUTTTLTTTLTLUPTLUPTLUPTLUPUPUPUP6=TLTLTL6=TLUPTLUPY>66=YBYBY5Y5S:S:6<6=S:S:S:6=S:6=S:S:S0S06=S0S:S0S:S:S:S0S:S0W-W-6;6W(W(VZVZ6=W(VZVZ6=W(VZVZW(W(VZVZVZW(VZ6W76?W,W,6?W,6?6@W7W76@W76AW76AW96B6CW76CW7W7W7W7W76CW7W9W9W9W76BW7W76B6CW76DW7W7W7W96CW7W9W96CW9W9W9W7W7W76CW9W96CW9W9W96CW9W7W9W7W9W9WW)6>W)6?W)W<6?WWUWU6>W1WUWUW1W1WUWUW1WUWU6<6=WXWUWUWXWXT>T>T>6UCUC6>UCU?UCU?V1SASZ6=SZX-6=6>VXX*X*6>6?VX6?VXX*X*X*6?VX6?6@6AVXX*X*VX6AVX6AVXVX6AX*6BX*VXVXVX6BWUWUWU6BWU6BWU6CWUWUWAWUWU6BWUWU6BWUWUWU6B6CW1W1TD6CTD6DTDTITDTIS4S4S=S=S46BS4S4SXSXS@6BSXSX6BSXS@SXS@SX6ASXS@S@S@6AS@S@6ASX6BSXTDTDTD6BS.SMS.6B6B6CS.S.6CSM6DSM6DT$SMSMSMSMSM6DSMSM6DT$T$SKT$6D6DSK6ESK6ESK6FSKSKSK6FSKS3S3S36FS3S36FSJS3S36F6G6GSO6HSO6HSGSGSGSGSGSO6H6HSG6I6JSGSGSG6JSGSWSWSWW>W>W>6IW>6I6J6K6KW>6L6MW>W>6MWVW>WV6MWVWVWVWVW4WVW4W4W46KW$6LW$U#U#T-U#T-6KT-T-SJ6KSJ6LS7S7S76LS7SJSJSJS7S76KSJS7S7SJSJSOSOSO6J6JSGSGSGSO6JSOSOSOSISISISO6ISOSISOSISO6ISO6ISOSI6IS86JS86JSISISIS8SIS8S8SI6ISIS8S86IS8S>6I6JS>S>S>SWS>6JSWSW6JSWS>6JS>S>6JTP6KTPV(V(V(6KT=V(T=6KV(V(V(6K6K6LT=T=6LU@T=T=6LSO6M6NSP6NSPSP6N6OSP6PSP6PSPSPS6S66PS6SRS6S6S6S6S6S66OS66O6PSRS6S6S66P6PSRSRSRSRS6SRSR6O6PT1T1U<6PTGTGT;TG6PTGTPTP6PV.TGV.TGV.SPSP6O6PS66PS6S6SRSR6PSRSE6PSESET/6PT/T/6PT06QT0T06QT06R6RT;6S6TT06TT0T0T;T;6T6UT06UT0T;6UTGT;6VT;6VT;T;V.V.6VV.6V6W6XT0T06X6YV.T0T0T06Y6YV.6ZV.T;6ZT0T06ZT;7#T;T07#V.V.SCSESCSESESESS6Z6ZSESSSSSESESE6Z6ZSSSSSSX;6ZXDXD6ZXDXDXDT3T36Z7#T57#T5T5T5T3T5T5T56ZT57#T3T3T37#7#T5T5T5T0T0T07#T0T07#T0T07#T.T.7#T0T.7$T0T07$T0T.T0T.7$T0T0T0T.T0T07#7$7$7%UMUMUM7%UMUM7%V.7&7'7'UM7(UMT07(T0UMT0UMT07(T0UM7(UM7(UMT0UMT0T07(T07(T.T.T.7(UM7)UMV.7)UMUMV.V.7)V.UM7)UMUMUMUMT.UMSE7(SE7)XDXDXB7)7)XD7*7+7+7,XBXBXDXDXB7,XDXD7,XDXDXD7,XDXB7,XBXB7,7-T5T5T/T/T4T4T/T/T4T4T/T/T4T4T/T/T4T4T/T/T4T47(YUYUYUY7Y77(Y7Y7Y7YU7(Y7Y77(Y7YUY7YUY7X.X.X.X&7&7'X&X&X.X.X&X&7&7'X&X&7'X&X&X&X.X.7'7(X.X.X.7(Y4Y4Y@7(7(Y@7)Y@Y4Y4Y47)Y47)Y@Y@7)Y@Y@Y@Y4Y47)Y@Y4Y4Y@Y@Y@Y@Y4Y4Y@Y@7'Y@7'7(Y4Y4Y47(Y4Y47(Y4Y4Y4Y'Y,Y'Y'Y'Y'Y'7'Y'7'Y'Y,Y'Y,Y'Y,Y'Y,Y,Y,YH7%YUYU7%YUYUYUYHYHYUYHY3Y37$Y,Y,7$Y,Y,Y3YUY3Y3Y,Y,7#Z&Y,7#7$Z&7$Z&Y,7%7%YLZ$Z$YVYVYLYLYLYV7$YVYL7$YLYLYV7$YVYV7$YG7%YGYV7%YVYG7%7&YXYXYNYN7&YNYN7&7'X.YN7'YNYG7'7(YGYG7(7)YGYG7)YNYNYNX.7)X.X.YNYNX.X.YNYNYN7(7(X.X.X.YNX.7(X.YNX.X.X.X.YGYGYGYGX.YGYGYG7%YG7&YG7&YGX.YGYGYGX.YG7%X.X.YGYGX.7%X.YGX.YGX.X.WOX.X.X.X.7#X.X.7#X&X.X&X&X&WGW=W=W=WGWG6Y6ZW=W=W3W=V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>V=V=U>U>6RTLUT6S6STLTLTLV?V?V?6SV?V?6STLV?V?TLTLUGUGTL6RTL6RTLTLUGUGTLUGV;V9V;V9V96PV;V;V;V;6PV;V9V96P6QV9V9V9V;TL6P6QUG6QUGTLTLUGUGTLTLUGUGTL6PUGUGUG6P6P6QTLTLV;6QTUTUV;V;TUTUUKUK6P6QUKUK6QUKUKUKUPUKY.Y.6PY.YI6PYIYI6PY'Y.Y'Y.Y.Y.6PY.Y.6PYIY.Y.YIYIY.Y.6O6P6PYIYIYI6P6QYIYI6Q6RYIYIY.Y.6RY.YI6RYIYIY.Y.YIY.6QY.YIY.Y.Y.YIYIYI6PYIYI6P6QYIYIY.Y.6QY.YI6QYI6RYIY.YIY.Y.6QY.6RY'Y'Y.Y.Y'6QY.Y.Y'Y'Y'6QY'6QY.Y.Y.6Q6RY.6R6SY.Y.Y'Y'Y.Y.Y'Y.Y.Y.Y'Y'Y.Y.6PY'Y.Y'Y'Y'6PY'6PY.Y.Y.Y'Y'6PY.Y'Y'6PY'Y.6PY.6QY'Y'6QY'Y'Y'Y'6QY'Y,Y'Y'Y,Y'Y,6PY'Y'6P6QY'Y'6QY'Y,Y,Y'6QY,Y,Y'Y,Y'6PY'Y'Y'Y'Y'Y,Y'Y'Y,6OY'6OY,Y,Y,Y,6OY,6OY,6PY,Y'Y,Y'Y'Y'6OY,Y,6OY,Y,Y,Y,Y'Y,Y,Y.Y'Y.Y.Y'Y'6MY'Y.6M6NY'Y'Y'Y'Y,Y'Y,Y'6MY'Y'6MY,Y'Y,Y'6M6MY,6NY,Y'Y'Y'6N6NY,Y,Y,Y'Y'Y'6N6NY,Y,Y,Y,Y,6NY'6N6OY,Y,Y.Y.Y.Y'Y.Y'6NY'Y.6NY.6OY.Y.6O6P6P6QY'Y'6QY'Y'Y'Y'Y'6Q6R6RY,Y'6SY,Y,6SY,Y'6SY'6TY,Y,6TY,Y'6TY'6U6UY'Y.6VY'Y'6VY'6VY'6W6X6XY'Y.Y.Y'6XY'Y,6X6YY,Y,YI6YYIYIY.Y.6YY.Y.6YYIYIY.YAY.Y.YAYA6XYAY.Y.Y.6XY.Y.YIYI6W6XYIYI6X6YYI6Z6Z7#Y.7$7$7%YIYI7%7&YIYIYAYA7&7'YAYA7'YIYAYAYA7'YAY,Y,Y,YA7&YAY,Y,Y,7&Y,YI7&YIYIY,Y,7&Y,YI7&YI7'Y,7'Y,7(YI7(YIYIYI7(YIYIYI7(YIYI7(Y,YIYI7(Y,7)7*7*7+YIYIYIYI7+7,7,7-YIYIYIZ)YIYIZ)Z)7,Z)YI7,YIZ)Z)Z)Z)7,Z)YIYIYI7+Z)7,Z)Z)Z)Z)7,Z)7,YIYI7,YIYIYIZ)Z)YIYI7+YIYIYIYIYMYIYIYMYM7*YMYIYIYM7*YIYIYMYMYMYIYMYMY,Y,Y,7(7(Y,YIYIYI7(YIY,YIYIYI7(7(Y,Y,Y,YIYI7(YIYIY,YIY,7'Y,Y,Y,Y,Z&7'Z&7'Z&Y,Z&Y,7'Y,Y,Y,7'Y,7(Y,Z&Y,Y,7'Z&7(Z&7(Z&Z&Z&Z&Z&7(Z&7(Z&Y,Y,Y,YKYKYKY,Y,Y,7'Y,Y,YK7'Y,7'Y,Z&Y,Y,Y,7'Y,Y,Y,7'7'Z&7(7)7)Z&7*Z&YIYIYI7*YIYIYIY,YIYI7)Y,YI7)7*Y,7*Y,7+Y,YI7+YIY,7+Y,Y,Y,YIY,Y,Y,7*Y,7+Y,7+Y,YIYIYIYIYI7+YI7+YIY,7+Y,YI7,7,Y,YI7-Y,Y,7-7.Y,Y,Y,7.YI7.Z)Z)Z)7.Z)7/Y,Y,7/70Y,Y,Z)Z)7/Z)Z)Z)Y,7/Z)Z)Y,7/Z)Z)7/Y,Z)Z)Y,Y,Z)Z)7.7/Z)Z)Z)Z)Y,Y,Z)Z)7.Z)Y,Y,Z)Z)Y,Y,Z)7-Y,Y,7-Z)7-Z#Z)7.Z)7.Z)7/Z)Z)7/Z#Z#Z#7/Z#7/YZYZYZ7/YZ70YZ70YMZ)Z)Z)Z)70Z)YMZ)7071Z)Z)71Z)Z)YM71YMZ)Z)Z)YMZ)Z)70YM70YMYMYMYMZ)YM70Z)YM70YMZ)Z)YMYMZ)Z)7/70Y,7071Z#Y,71Z#Z#7172Z#Z#Y,72Y,7373Z#Z#Z#7374Y,Z#74Z#Z#Z#YMY?74Y?74Y?YMYMY?74YMYM7475YM76YM76YM77Y?Y?Z'77YM7778Y?78Y?YMYMY?Y?YM78YM78YMYM78Y?YM79YMYM797:7:Y?YM7;YMYMYM7;7;Y?Y?Y?YKYKZ#Z#YKYKZ#YKYKZ&YKYKZ&Z&78Z&Z&Z&7879Z&Z&797:7:7;YKYK7;YKYKYK7;Z&7Y0Y0Z#Z#7>Z#Z#7>7?Y0YKYKZ#YKY-Y-7>Y-Z#Y-Z#Z#7=Y-Z#Z#Y-Y-7=Y-Z#7=Z#Y-Z#Y-Z#Z#Z#Z#Z#7Y?Y?Z#7>Y?Y?Y?Y07>Y07>Y0Y?Y?Y?Y?Z'7>7>Y07?7@Z'Z'Z'7@Z'Z'YP7@Z'Z'YPZ'Z'Z'Z'7?7?Z'YPZ'Y-Y-Y-7?Y-Y-Y-Y07>7?Y0Y0Y07?Y0Y07?7@Y0Y0Y-Y-Y-7@Y-7@YYYYY-7@Y-7AYYYY7A7BYYYY7BYYY-Y-Y0Y07A7BY0Y0Y0Y07B7CY07CY+Y+Y0Y07CY0Y0Y0Y07CY/Y/Y+Y+Y/Y/7BY/Y07BY0Y/YEYEZ&Z&Z&7AZ&YEYE7AYY/7>Y/Y/7>7?YY/Y/Y/YYGYGYTTU>7:U>U>U>TTU>79TTTTTUTUTLTLTUTUTLTLTUTUU0U07677U0U0TLU077U07778TLTL78TUU0U0TUTUU0U07778U0U0TUTUU0U0TUTU7778TUTUV;V;TU77TU7878V;79V;797:V;V;TUTUTU7:TUTU7:7;TUTU7;77>V;7?V;7?V;V;V;TUTUUPUP7>U57?U5U4U4TLU4U0UPU0UPU0UPU0UPUPUPU97TUTUTU7>7>V;7?V;TU7?TU7@TUV;TUV;7?V;TUV;TUV;TUV;V;7>V;7?UPUP7?7@7@UP7AUPV;V;V;UP7@UPUPUPV;UPUPUPYB7?YBY>7?YBY>Y>YBYB7?Y>YB7?Y>Y>Y>YB7?YBY>7?Y>YBYBYBYBYIYB7>YBYBYIYIYBYIY>YBYBYBYIYIY(Y(YIYIYI7;YIYIYBYBYIYB7:YI7:YIYIYIYBYIYBYIYIYIYBYBYIYIYBYBYIYIYBYIYIYI7677YIYI77YIYMYMYI77YI77YI78YIYIYFYIYMYM77YM77YMYIYMYMYMYM77YM77YMYMYMYM77YO77YMYOYMYOYO777878YMYMYM78YPZ'Z'YPYP78YP78YPZ'YPYPYPZ'YPYPYPZ'77Z'YPZ'Z'Z'YJZ'7676YJZ'YJYP76YPY+YWYWYW76YSYSYWYSYW7576YS76Y/Y+7777Y/Y+Y+Y/Y/Y+Y+Y/Y/Y+Y/YT7576Y/76Y/YTYTY/Y/YTYTY/Y/Y/7575YTYTYTY/Y/757676YTYTYTY/Y/76Y/YTY/YTYT75YTYTYTY9Y975Y9Y*Y9Y*Y*Y*Y*Y*74Y*74Y*Y*Y9Y9Y9X#Y973X#X#73X#X#X#VWVWX#73VW7374X#74VWX#VWX#74X#X#7475X#X#X/VWX/X/VWVWVW74VWVW7475VSWSVS75VSVSVS75VS75VSVS75WSWSW,WSWS75WSWSWSVSWSWSWS74757576VSVSWSWSVSWSWPVNWPWP74VNWP75VNVN75WY75WYWYWYVNVN7576VN76WYWY76WYWYWYVNVN7677VN77WYWY7778WYWYVNWYWYWYW#77W#WYWY77WYWY7778WYWYW#WYWYWYW#WYWYWYVNVNW#W#VNVN75VNW#VNW#W#VNVNVN7474WY75WYWY75W,W,75WYW,W,WYWYW,W,WYWYWY74WY74WYWYWYWYW,W,WYWY7374WYWY74W,WYWYW,W,WYWYWY73WYWY7374WYWY747575WYW,W,WY75WY76WYWYW,W,W#W#WY75W#W#75WYW,W,7576W,W,W,7676WYWYWY76WYWYWYW,76W,W,76WYW,W,WYWYW,WYWYWY75WYWYWYWY75WYWYW#W#W,W,W#W#73W#W#W#7374W,W,7475W,W,75W,W,W,W,W,W#W#W#W#W#74W#W,74W,W,W,W,W#WYWY73WYW,W,W,W#WYWYW#W#71W#W#W#7172WYWYW#727374WYWYWYW#W#WYWYWY72WYWYWYWS72WS73W,W,73WSW,W,7374W#WYW#WYWY73WYW#W#W#W#73W#W#WYW#WY72WYWY72WYWYWYWYW#WYWYWYWY7172WYWY72W#72W#W#W#W#W#WYWYW#W#71W#W#W#717272W#WYWYW#W#W#72W#W#727373W#WY747475WYWYWYWYW#WYWYWYWY74WYWYWY74WY7475W#WYWYWY757576W#W#7677W#W#77W#W#W#WYWYWY77WY7778W#78W#W#W#WYWYW#WYWYWYW#W#WYWY767777W#W#W#W#77W#W#WY7778W#WY78WY7979W#7:W#VNVNW#W#VNVNW#W#VNVNW#78W#78W#W#78VNW#W#VNW#W#W#WUWUWU77WUWU77WUWUWUWU77WUWU77WM77WMWMWMWMWM77WMWUWMWMWMWU76WMWMWMWMWT76WT76WTWTWMWMWM767677WTWTWMWMWM77WM7778WT78WTWTWTWMWMWM78WM78WTWT78WTWTWT78WTWTWTWU78WMWMWUWM7879WM79WM7:WMWMWM7:WMWM7:7;WT7;WTWTU>UYU>UYU>7:U>7;U>U>U>7;U>7;U>U>U>UYUYUYU>U>7:7;U>U>7;V:U>U>V:V:U>U>V:V:U>79V:V:U>U>79V:U>U>V:V:U>U>V:V:U>77V:V:77U>V:V:U>77UYUY77U>UYUY7778UYUYV:UYV:78V:UY78U/UYUY7879UYUYUYTTUYUYTTTT77TTTTTTUY77U/U/7778U/U/78U/U/U/U/78U/U/7879U/U/TTTTUUUUTTTTUUUUTTTT77TTUU77UUUUUU77UUUU77TTUU78TTTT78TTUUTTUUUUUPUP77UPTLUP77UP77YBY>YBY>YBY>777778S:79797:S:S:S:7:7;S;S0S07;7<7WFW-W-7>W-WFW-WFWFY9Y9W(7=7=W(W(W(Y9Y9W(7=Y9Y97=Y9W-W-WFW-W-W-WFWFW(W(7;77>W7?7@WUWUWU7@WUWUWU7@WU7@W1W17@W1W1W1WUWUWUWXWUWXWXWX7>UIUIUIULUL7>7?UL7?7@UITHTHTATATHTHTATHT+T+UCUCUCUCUC7=UCUC7=UCSA7=SASZX-X-X-7=7=VXVXVX7=X*VXVXX*X*7=X*7=X*X*X*X*X*7=X*X*X*X*7=X*X*7=7>X*VXX*VXX*X*VXX*VX77>SXS@7?S@7?S@S@S@7?S@S@SXSX7?SXS@7?S@S@TD7?TD7@S.SMS.S.S.SMS.S.SMSM7>7?SMSM7?SMS.SMS.SMSM7>SMSMSMSMSM7>7>7?T$T$T$SK7?SKT$7?T$7@T$7@T$7AT$7A7BSKT$SKSKSK7ASKT$SKS3S37A7BS3S3SJSJS3S3S37A7AS3SO7BS3SOS3SO7ASOSOSOSO7A7BSG7BSGSOSOSOSGSOSGSO7ASOSO7ASOSOSOSGSGSWSWW>W>W>WVW>W>W>7?WV7?WVWV7?WVWVWVW>W>7?W>WV7?WVWVW>W>7?7@W>W>WVWVW>WVW>WVW$W$W$W?W$W?W?W?7SJSOSOSO7>SGSG7>SGSO7>SOSG7>SISISISISI7>SISISISOSISOS8SOS8SOS8SOS8SG7;SG7SISIS>S>SISIS>S>S>78S>S>78SWS>79S>S>S>SWV$TPV$78V$TPV$TPV(V(V(7777U@T=78V(V(T=T=V(V(77T=V(7778T=U@U@78U@SPSOSP78SP78SPSP78SOSPSPSP78SPSPS>S>SPSPS>S>77S>SP77SPSPSPS6SPSPS6S6SRS6S6S6S6SRSRSR74SR7475SRSRS6S67576S676SRSRUTTU>TTU>TTTTTTTUTUU0U0TUTUU0U0TLU0TLU0TLU0TLTLU0U0TLTLTUTUU0U0TUTUU0U0TUTUU0U0TUTUTUV;TUTUV;V;TUTUTUV;TUV;V;V;TUV;TUV;TUV;TUV;TUTUTUV;TUTUV;V;TUTUTUUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUTUUPUPTUV;TUV;TUV;TUV;TUTUTUV;TLTLTLU5TLU5U5U5UPUPU9U9UPUPU9U9V;UPV;UPV;UPV;UPV;UPV;V;V;V;V;UPTUV;V;V;TUV;TUV;TUTUTUV;TUTUTUV;TUV;V;V;TUTUTUV;V;UPV;UPUPUPV;V;UPUPV;V;UPUPV;UPV;UPV;UPV;UPV;UPV;V;UPUPYBYBYBY>YBYBY>Y>YBYBYBY>YBYBYBY>Y>YBYBYBY>YBYBYBYIYIYBYBYIYIYIYBYBYIYBYIYIYIYBYIYIYIYBYBYIYIYBYBYIYIYBYBYMYMYIYMYIYIYIYFYFYFYIYFYMYMYIYMYIYMYIYMYMYMYMYOYMYOYMYOYMYMYOYOYMYMYOYOYOYOYMYMYOYOYMYMYOYOYOYMYPYPZ'Z'YPYPZ'YPZ'YPZ'Z'YPYPZ'YPZ'YJZ'YJYJYJZ'YJYPY+Y+Y+YWYWYSYSYWYSYWYSYWYSYSYSY/Y/Y+Y/Y/Y/Y+Y/Y+Y/Y+Y+YTYTY/Y/YTYTYTY/Y/Y/YTYTY/YTYTYTY/Y/YTYTY/Y/Y/YTY/YTYTYTY/YTYTYTY/Y/Y/YTY/YTYTYTY9Y9Y*Y9Y*Y9Y*Y*Y*Y*Y*Y9Y9Y9X#X#Y9X#X#X#VWVWX#VWVWVWVWX#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#VWVWX#X#WSWSVSVSVSWSVSWSVSWSVSWSWSWSWSW,WSWSVSVSVSWSVSVSWSWSVSWSVSWSVSVSWSWSVSWSVNVNWPVNVNVNWPWPVNVNVNWYVNWYWYWYVNVNVNWYVNWYWYWYVNVNVNWYVNWYVNVNWYVNWYWYVNVNWYWYVNVNWYWYVNVNWYWYVNVNWYWYW#WYWYWYWYW#WYWYW#W#WYWYW#WYWYWYVNVNW#VNVNVNWYWYVNWYVNWYVNWYWYWYWYWYW,W,WYWYW,WYWYWYWYW,W,W,WYW,WYWYW,W,WYWYW,W,WYW,W,W,WYW,WYWYWYWYW,W,WYWYW,W,WYWYW,W,WYWYW,W,WYWYW,W,W,W,WYW,W,W,WYW,W#W#WYWYW#WYWYWYW,W,W,WYW,WYWYWYW,WYWYWYW,W,W,WYW,WYWYWYWYWYW,W,WYWYW,W,WYWYW,WYWYWYW#W#W,W,W#W#W,WYW,W,WYWYW,W,WYWYW,W,WYW,W,W,W,WYW,W,W#W#W#W,W#W,W,W,WYWYWYW,W#WYW#WYW#W#WYWYW#W#WYW#W#WYW#WYW#WYW#W#WYWYW#WYWYW#WYWYWSWSWSW,W,W,WSWSW,W,WSWSW,W,W7W7W,W,W7W7WYW#WYW#W#W#WYWYWYW#WYWYW#WYWYWYWYW#W#W#W#WYW#WYWYWYWYW#WYWYW#W#WYW#WYWYWYW#WYWYW#W#WYW#WYW#WYWYW#W#WYWYW#W#WYWYW#W#WYWYW#W#WYW#WYW#WYWYW#W#W#WYW#WYWYWYWYWYWYW#WYWYW#W#WYWYW#W#WYWYW#W#WYW#WYW#WYWYWYW#WYWYW#W#WYWYW#WYW#W#WYW#WYW#W#W#WYWYWYW#WYWYW#W#WYW#W#W#WYWYW#W#WYWYWYW#WYWYW#W#WYW#WYW#WYWYW#W#WYW#W#W#WYW#W#W#W#W#WYWYWYWYW#W#W#W#WYWYWYWYW#W#W#VNW#W#VNVNW#W#VNVNW#VNWUWUWMWMWMWMWMWUWUWUWUWMWUWUWUWMWUWUWUWMWUWMWUWUWUWUWMWMWMWMWTWTWMWMWTWTWMWTWMWTWMWMWMWTWMWTWTWTWMWMWTWMWMWMWTWTWMWTWTWTWMWMWTWTWMWTWTWTWMWMWMWTWMWMWTWTWMWTWTWTWUWUWMWMWUWMWMWMWMWUWMWMWMWTWMWMWMWTWMWTWMWMWTWMWMWMWMWTWMWMWTWTWMWTWTWTUYUYU>UYU>UYU>UYU>UYUYUYU>UYU>U>U>U>V:V:U>U>V:V:U>U>V:V:U>U>V:V:U>U>V:V:U>U>U>V:U>U>V:V:U>U>UYUYU>U>UYUYU>U>UYUYU>UYUYUYV:UYV:UYV:V:U/U/U/UYU/U/UYUYU/U/UYUYUYTTUYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/UYUYU/U/TTTTUUTTTTUUUUUUUUTTUUUUTTTTUUTTTTTTUUTTUUTTUUUUUPUPTLUPTLTLUPUPY>YBY>YBY>YBY>YBS:S;S:S;S:S:S;S;S;S;S:S:S:S:S;S:S:S:S;S:S:S:S;S:S:S;S:S:S:S0S:S:S0S0S:S0S0S0S:S0W-W-WFWFW-WFWFWFW-W-W-WFWFW-WFWFWFW-WFW-Y9Y9W(W(Y9Y9Y9W(W(Y9W(W(W(Y9W(W(W(W(VZVZW(W(VZW(W(W(W(VZW(W(VZW(VZVZW(VZVZW(VZW(W6W(W6W6W6W(W6W(W6W(W6W6VOW(VOW(W(W(VOW(W6W6W.W6W.W.W.W6W6W6W6VOY9Y9W(Y9Y9Y9W(W(W(W(W(VUY9Y9W(W(Y9VUY9VUY9Y9VUY9X#VUX#X#VUVUX#X#VUVUX#X#VUVUVUX#VUX#X#X#X#X#VUX#VUVUVUX#X#X#VUX#VUVUVUX#VUVUX#X#VUX#VUVUX#X#VUX#X#VUVUVUVUX#VUVUVUX#VUX#X#X#X#VUX#X#VUVUVUX#VUVUVUX#VUX#VUX#VUX#X#VSX#X#VSVSX#VSX#X#X#VSX#VSVSVSW7WSW7W7WSWSW7WSWSWSW7WSWSWSWSW7WSWSW7W7W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W,W7W7W7W,W7W7W,W,W7W,W7W,W7W7W,W,W7W,W7W9W7W7W7W9W7W9W7W9W7W7W7W9W9W9W9W9W7W7W9W9W7W9W9W9W7W9W7W9W7W9W7W7W7W9W7W7W7W9W7W9W9W9W9W9W9WUIUIUIUIULUIUIULULUIULULULUIUIULUIULUIUCUCU?U?UCUCU?U?SASZSASZX-X-X-VXX-VXX-VXX*X*VXVXVXX*VXX*VXX*VXX*X*X*X*VXX*X*X*VXX*X*VXVXX*VXVXVXVXX*VXVXVXX*VXVXX*X*VXX*VXX*VXX*WUWUWUWAWUWAWAWAWUWAWUWAWUWUWUWAWAWAWUWAWUWUWUW1WUW1W1W1TDTITITITITITDTITDTITDTDS4S=S4S4SXSXSXS@SXSXS@S@SXSXS@S@SXSXS@SXSXSXS@SXSXSXS@S@S@SXS@S@S@SXS@SXTDTITDTITDTITDTISMSMS.S.SMSMS.S.SMSMS.S.SMT$SMSMSMT$SMSMSMSMSMT$SMSMT$T$T$T$T$SKT$T$T$SKT$SKT$SKT$SKT$SKT$SKT$T$T$SKSKSKT$SKT$SKT$SKT$SKS3SJSJSJSJS3SJSJS3SOS3SOS3S3SOSOSOS3SOSOS3SOS3SOSOSGSGSGSOSOSOSGSOSGSOSOSOSGSOSOSGSGSOSOW>W>WVWVW>W>WVWVW>WVWVWVW>W>WVW>WVW>WVWVWVW>WVWVW>WVWVWVT-U#T-U#SJS7SJS7SJS7SJSJS7S7S7SJS7S7SJSJS7S7S7SJS7S7SJSJSOSGSOSGSOSGSGSGSOSGSOSGSOSOSOSISISISOSISGSGSGSISGSISGSIS>SWS>S>SWSWS>SWSWSWS>S>V$TPTPTPV(V(V(T=T=V(T=T=T=U@T=T=V(V(T=T=V(T=T=T=V(V(T=T=U@U@T=T=SOSOSPSOSPSOSPSPSOSOSOSPSOSPSPSPS>S>SPS>SPS>SPSPS6S6S6SRSRS6SRSRS6S6S6SRS6S6S6SRS6S6SRSRS6S6SRSRU 0 ? '-' : '+') + hour + min;\r\n },\r\n 'Z': function (d, locale) {\r\n return d.toString().replace(/^.*\\(([^)]+)\\)$/, '$1');\r\n },\r\n '%': function (d, locale) {\r\n return '%';\r\n },\r\n\r\n // NON-STANDARD ADDITIONS\r\n 'i': function (d, locale) {\r\n var h = d.getHours();\r\n return h == 0 || h == 12 ? 12 : h % 12;\r\n },\r\n\r\n 'k': function (d, locale) {\r\n var date = d.getDate();\r\n var modDay = date >= 20 ? date % 10 : date;\r\n if (modDay in locale.daySuffixes) {\r\n return locale.daySuffixes[modDay];\r\n } else {\r\n return locale.daySuffixes[4];\r\n }\r\n }\r\n}\r\n\r\nfunction leadingZero(n, leading) {\r\n return n >= 10 ? n : (leading ? leading : '0') + n;\r\n}\r\n\r\nlet second = 1000;\r\nlet minute = second * 60;\r\nlet hour = minute * 60;\r\nlet day = hour * 24;\r\nlet week = day * 7;\r\n\r\n/**\r\n * Formationg date\r\n * @param {Date} d \r\n * @param {string} format \r\n * @param {*?} timezone \r\n * @param {string?} locale \r\n */\r\nfunction format(d, format, timezone, locale) {\r\n const localeData = getLocale(locale);\r\n let parts = [],\r\n m;\r\n while (m = formatRegex.exec(format)) {\r\n let part = m[1];\r\n let formatter = formatters[part];\r\n if (formatter) {\r\n format = format.replace(m[0], formatter.apply(formatters, [d, localeData, timezone, locale]));\r\n }\r\n }\r\n return format;\r\n}\r\n\r\nfunction formatAgo(d, timezone, baseTime, locale) {\r\n var l = getLocale(locale);\r\n if (!baseTime) {\r\n baseTime = new Date();\r\n }\r\n\r\n var ad = baseTime - d;\r\n var delta = Math.abs(ad);\r\n if (delta < minute) {\r\n var n = Math.round(delta / second);\r\n var format = n == 1 ? (ad > 0 ? l.secondAgo : l.secondIn) : (ad > 0 ? l.secondsAgo : l.secondsIn);\r\n return format.replace('%t', n);\r\n } else if (delta < hour) {\r\n var n = Math.round(delta / minute);\r\n var format = n == 1 ? (ad > 0 ? l.minuteAgo : l.minuteIn) : (ad > 0 ? l.minutesAgo : l.minutesIn);\r\n return format.replace('%t', n);\r\n } else if (delta < day) {\r\n var n = Math.round(delta / hour);\r\n var format = n == 1 ? (ad > 0 ? l.hourAgo : l.hourIn) : (ad > 0 ? l.hoursAgo : l.hoursIn);\r\n return format.replace('%t', n);\r\n } else if (delta < week) {\r\n return format(d, '%A at %i:%M%P', timezone, locale);\r\n } else if (d.getYear() == baseTime.getYear()) {\r\n return format(d, '%B %e%k at %i:%M%P', timezone, locale);\r\n } else {\r\n return format(d, '%B %e%k, %Y at %i:%M%P', timezone, locale);\r\n }\r\n}\r\n\r\n\r\n\r\nexport { format, formatAgo, second, minute, hour, day, week }"],"names":[],"sourceRoot":""}